반응형
DB 설정 및 ssl 인증서 설정
Python db ssl 접속 (feat. sql alchemy)
ssl 경로 적어주기
다양한 요인에 의하여 문법 등이 달라질 수 있다.
connect_args={'ssl':{ "sslca": "/etc/mysql/ca-cert.pem" }},
인터넷에 찾아보면 아래 문법이 가장 많이 나오는데 나는 되지 않았다.
connect_args={'ssl_context': ssl_context},
예시 전체 문법
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
import ssl
ssl_context = ssl.SSLContext()
SQLALCHEY_DATABASE_URL = 'mysql+pymysql://test:test123@127.0.0.1/test_db?charset=utf8mb4'
engine = create_engine(
SQLALCHEY_DATABASE_URL,
connect_args={'ssl':{
"sslca": "/etc/mysql/ca-cert.pem"
}},
# connect_args={'ssl_context': ssl_context},
echo=True,
pool_recycle=900,
pool_pre_ping=True
)
SessionLocal = sessionmaker(bind=engine, autocommit=False, autoflush=False)
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
Base = declarative_base()
확인하기
통신을 확인해보면 알 수 있는데 식자는 할 줄 모른다.
그래서 쉽게 할 수 있는 그냥 함수 실행을 하였다.
SHOW SESSION STATUS LIKE 'Ssl_cipher'
예시 함수
async def text(db: Session = Depends(get_db)):
"""
`test`
"""
ssl = db.execute(text("SHOW SESSION STATUS LIKE 'Ssl_cipher'")).fetchall()
return ssl
반응형