如何通过DSN配置实现无密码字符串的pyodbc连接?
问题:pyodbc通过DSN连接时无法读取.odbc.ini中的密码
核心需求
仅使用连接字符串中的DSN名称建立pyodbc连接,不在连接串中明文填写密码。
测试代码
import pyodbc cxxn = pyodbc.connect("DSN=HARSHIT_CON")
.odbc.ini配置内容
[HARSHIT_CON] Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.1.so.9.1 Description=python Database=my_db Server=someserver,2500 user=harshitjindal password=penguincontrolgroup QuotedId=Yes AnsiNPW=Yes
实际错误信息
Traceback (most recent call last): File "hjind1/testdb.py", line 2, in <module> cxxn = pyodbc.connect("DSN=HARSHIT_CON") pyodbc.InterfaceError: ('28000', "[28000] [unixODBC][Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Login failed for user ''. (18456) (SQLDriverConnect)")
已尝试的操作
- 删除.odbc.ini后提示DSN未找到,确认配置文件已被读取;
- 尝试在.ini文件中用
UID和PWD字段替代user和password; - 手动在连接串中传入
UID仍连接失败,仅同时传入PWD时连接成功,但不符合无明文密码的需求。
求助
如何配置才能让pyodbc从DSN配置文件中读取密码,无需在连接字符串中明文传递?
内容的提问来源于stack exchange,提问作者Harshit Jindal
相关产品推荐
相关产品推荐

