我希望使用pyodbc通过DSN建立与MS SQL的连接。我看到的是,除非在这样的连接字符串中指定用户名(PID)和密码(PWD),否则我无法连接到数据库:
conn_str = 'DSN=MYMSSQL;UID=sa;PWD=password'
因此,如果我使用PID
和PWD
可以工作,但是如果我将PID
和PWD
放入我的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
答案 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'