You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 01:55:16