我正在使用Python代码(Pymssql库)从MS SQL服务器进行查询但是我想知道是否有任何方法可以使连接安全并加密从服务器发送到python的数据?
谢谢
pymssql肯定声称能够使用加密连接到SQL Server(通过OpenSSL)。有些人可能认为不可能的一个原因是,在2.1.2之前的Windows版本的pymssql版本附带了pymssql静态链接到FreeTDS,仅用于未加密的连接。
从版本2.1.2开始,Windows版本的pymssql动态链接到FreeTDS,因此它可以支持未加密的连接(仅通过FreeTDS)或加密连接(通过FreeTDS和OpenSSL)。有关详细信息 - 以及重要更新版本:版本2.1.3及更高版本 - 请参阅相关答案here。
是的,它可以。
您需要通过OpenSSL支持SSL的FreeTDS。如果您碰巧使用Linux(或Windows上的Docker),在Debian中安装独立的FreeTDS非常容易:
apt-get update
apt-get install freetds-bin freetds-dev
pip install pymssql
不要将pymssql与捆绑的FreeTDS库一起使用,它显然不支持SSL。在安装pymssql之前设置env变量PYMSSQL_BUILD_WITH_BUNDLED_FREETDS=1
时会使用捆绑的库。
如果要使用pymssql使用安全连接连接SQL Server,则需要在主机中提供“安全”语法。
例如
不安全的连接主机:xxx.database.windows.net:1433安全连接主机:xxx.database.secure.windows.net:1443
不幸的是没有办法,但你可以使用pyodbc。