PYODBC + MS SQL SERVER connection with Encrypt=yes 未连接
PYODBC + MS SQL SERVER connection with Encrypt=yes not connecting
我们在 aws centos ECS 实例上有一个 python flask 应用程序 运行。我们正在尝试通过 PYODBC 与 Linux 上的 odbc 17 建立到我们数据库的加密连接。当 运行 在本地时,我们只使用 SQL 服务器驱动程序。目前我们有代码:
params = urllib.parse.quote_plus(driver;server;user;pwd;...;Encrypt=yes)
SQLALCHEMY_DATABASE_URI="mssql+PYODBC:///?odbc_connect=%s" %params
我们在服务器上启用了 tls。该连接在 windows 上本地工作,但未部署在 Linux 上。
目前正在使用 'yes' 而不是 'true' 进行部署。我们也即将尝试 'trustedserverconnection=yes'。非常感谢任何对此过程的见解!
更新:最新错误,连接字符串属性无效'trustservercertificate'
我们最终实现了第二个连接参数:
TrustServerCertificate=YES
这显然并不理想,因为我们希望拥有良好的安全实施实践。在未来的状态下,我们需要将其设置为 false 并将我们的 ssl pem 文件放入 Linux ssl 存储区。
希望这对某人有所帮助。使用 MS SQL Server 查找 pyodbc 的文档时遇到一些问题。
根据 this documentation,pyodbc 将连接字符串传递给底层 ODBC 驱动程序。微软的
文章 Using Connection String Keywords with SQL Server Native Client
记录 Encrypt
和 TrustServerCertificate
属性。通常应避免在生产数据库中使用 TrustServerCertificate
设置;但是,它在测试与使用自签名证书的开发数据库的加密连接时非常有用。例如,SQL 服务器的默认安装使用自签名证书,将需要此设置。
在我的 mssql+pyodbc
连接字符串中,我只是根据需要附加 ?Encrypt=yes&TrustServerCertificate=yes
。请注意,如果您在问号 ?
后已经有其他设置,请使用 &
而不是 ?
,例如:?Trusted_Connection=yes&Encrypt=yes&TrustServerCertificate=yes
我们在 aws centos ECS 实例上有一个 python flask 应用程序 运行。我们正在尝试通过 PYODBC 与 Linux 上的 odbc 17 建立到我们数据库的加密连接。当 运行 在本地时,我们只使用 SQL 服务器驱动程序。目前我们有代码:
params = urllib.parse.quote_plus(driver;server;user;pwd;...;Encrypt=yes)
SQLALCHEMY_DATABASE_URI="mssql+PYODBC:///?odbc_connect=%s" %params
我们在服务器上启用了 tls。该连接在 windows 上本地工作,但未部署在 Linux 上。 目前正在使用 'yes' 而不是 'true' 进行部署。我们也即将尝试 'trustedserverconnection=yes'。非常感谢任何对此过程的见解!
更新:最新错误,连接字符串属性无效'trustservercertificate'
我们最终实现了第二个连接参数:
TrustServerCertificate=YES
这显然并不理想,因为我们希望拥有良好的安全实施实践。在未来的状态下,我们需要将其设置为 false 并将我们的 ssl pem 文件放入 Linux ssl 存储区。
希望这对某人有所帮助。使用 MS SQL Server 查找 pyodbc 的文档时遇到一些问题。
根据 this documentation,pyodbc 将连接字符串传递给底层 ODBC 驱动程序。微软的
文章 Using Connection String Keywords with SQL Server Native Client
记录 Encrypt
和 TrustServerCertificate
属性。通常应避免在生产数据库中使用 TrustServerCertificate
设置;但是,它在测试与使用自签名证书的开发数据库的加密连接时非常有用。例如,SQL 服务器的默认安装使用自签名证书,将需要此设置。
在我的 mssql+pyodbc
连接字符串中,我只是根据需要附加 ?Encrypt=yes&TrustServerCertificate=yes
。请注意,如果您在问号 ?
后已经有其他设置,请使用 &
而不是 ?
,例如:?Trusted_Connection=yes&Encrypt=yes&TrustServerCertificate=yes