簡體   English   中英

PYODBC + MS SQL SERVER 連接與 Encrypt=yes 未連接

[英]PYODBC + MS SQL SERVER connection with Encrypt=yes not connecting

我們有一個 python flask 應用程序在 aws centos ECS 實例上運行。 我們正在嘗試通過 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

顯然,這並不理想,因為我們希望有良好的安全實施實踐。 In future state we will need to set this to false and put our ssl pem file in the Linux ssl store.

希望這可以幫助某人。 在使用 MS SQL 服務器查找 pyodbc 文檔時遇到了一些問題。

根據此文檔,pyodbc 將連接字符串傳遞給底層 ODBC 驅動程序。 Microsoft 的文章Using Connection String Keywords with SQL Server Native Client記錄了EncryptTrustServerCertificate屬性。 TrustServerCertificate設置通常應在生產數據庫中避免; 但是,在測試與使用自簽名證書的開發數據庫的加密連接時,它非常有用。 例如,SQL 服務器的默認安裝使用自簽名證書,並且需要此設置。

在我的mssql+pyodbc連接字符串中,我只是 append ?Encrypt=yes&TrustServerCertificate=yes視情況而定。 請注意,如果您在問號后已有其他設置? 然后使用&代替? ,例如: ?Trusted_Connection=yes&Encrypt=yes&TrustServerCertificate=yes

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM