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