pyodbc DSN-在连接字符串中没有UID和PWD的情况下连接到SQL Server

时间:2018-10-23 11:41:25

标签: python pyodbc

我希望使用pyodbc通过DSN建立与MS SQL的连接。我看到的是,除非在这样的连接字符串中指定用户名(PID)和密码(PWD),否则我无法连接到数据库:

conn_str = 'DSN=MYMSSQL;UID=sa;PWD=password'

因此,如果我使用PIDPWD可以工作,但是如果我将PIDPWD放入我的DSN配置(MYMSSQL)并从{中删除这两个属性{1}}无效,下面是DSN配置:

conn_str

pyodbc API文档中的观察,没有UID和PWD显然无法做到这一点

[MYMSSQL]
Description         = Test to SQLServer
Driver              = FreeTDS
Servername          = MYMSSQL
UID                 = sa
PWD                 = password
Database            = tempdb

1 个答案:

答案 0 :(得分:1)

我处理过的ODBC驱动程序管理器(Windows的内置DM和Linux上的unixODBC)静默地忽略了“系统DSN”和“用户DSN”中的UID=PWD=条目定义。它们确实尊重“文件DSN”定义中的那些条目,因此您可以在包含以下内容的安全位置创建一个名为“ mymssql.dsn”的文件

[ODBC]
Description         = Test to SQLServer
Driver              = FreeTDS
Servername          = MYMSSQL
UID                 = sa
PWD                 = password
Database            = tempdb

然后使用

conn_str = 'FILEDSN=/path/to/mymssql.dsn'