【发布时间】:2019-08-11 12:53:30
【问题描述】:
我想验证 SQLAlchemy 在使用 create_engine 连接到 PostgreSQL 数据库时设置的 SSL 连接。例如,如果我有以下 Python 3 代码:
from sqlalchemy import create_engine
conn_string = "postgresql+psycopg2://myuser:******@someserver:5432/somedb"
conn_args = {
"sslmode": "verify-full",
"sslrootcert": "/etc/ssl/certs/ca-certificates.crt",
}
engine = create_engine(conn_string, connect_args=conn_args)
我知道我可以打印engine.__dict__ 的内容,但它不包含有关它用于连接的 SSL 设置(TLS 版本、密码套件等)的任何信息:
{
'_echo': False,
'dialect': <sqlalchemy.dialects.postgresql.psycopg2.PGDialect_psycopg2 object at 0x7f988a217978>,
'dispatch': <sqlalchemy.event.base.ConnectionEventsDispatch object at 0x7f988938e788>,
'engine': Engine(postgresql+psycopg2://myuser:******@someserver:5432/somedb),
'logger': <Logger sqlalchemy.engine.base.Engine (DEBUG)>,
'pool': <sqlalchemy.pool.impl.QueuePool object at 0x7f988a238c50>,
'url': postgresql+psycopg2://myuser:******@someserver:5432/somedb
}
我知道我可以做类似SELECT * FROM pg_stat_ssl; 的事情,但是 SQLAlchemy 引擎是否将此类信息存储为类属性/方法?
谢谢!
【问题讨论】:
标签: python python-3.x postgresql ssl sqlalchemy