无法使用带有 Windows 身份验证的 pymssql 进行连接

Posted

技术标签:

【中文标题】无法使用带有 Windows 身份验证的 pymssql 进行连接【英文标题】:Unable to connect using pymssql with windows authentication 【发布时间】:2013-06-02 18:02:42 【问题描述】:

尝试使用 pymssql 连接到 MSSQL Server 2012 时,我收到以下错误。

我在 Windows 身份验证中的服务器名称是 SARATH,用户名称是 Sarath\SarathShanker,我没有设置密码。

代码:

mssql_conn=pymssql.connect(host='SARATH',user='Sarath\SarathShanker',password='',database='matrix')

错误:

回溯(最近一次通话最后一次): 文件“”,第 1 行,在 pymssql.connect (pymssql.c:7990) 中的文件“pymssql.pyx”第 556 行

pymssql.OperationalError: (18452, '登录失败。登录来自不受信任的 域并且不能与 Windows 身份验证一起使用。DB-Lib 错误消息 18452 , 严重性 14:\n一般 SQL Server 错误: 检查来自 SQL Server 的消息\nDB -Lib 错误消息 20002,严重性 9:\n自适应服务器连接失败\nDB-Lib 错误消息 18452,严重性 14:\n一般 SQL Server 错误:检查来自 m SQL Server\nDB-Lib 错误消息 20002,严重性 9:\nAdaptive Server conne 操作失败\n')

我应该如何修改我的脚本以使用 pymssql 连接到 MSSQL Server。

P.S 我也已经导入了 pymssql。 (上面的代码中没有显示)

【问题讨论】:

运气好了吗? 【参考方案1】:

试试这个:

conn = pymssql.connect(host='myhost', database='mydb')

这适用于 Python 3.4 版和 Windows 身份验证。

【讨论】:

【参考方案2】:

如果在 RHEL 上,请尝试

os.environ["FREETDSCONF"] = "/etc/freetds.conf"

【讨论】:

【参考方案3】:

如果你使用的是最新版本的pymssql(我用的是2.1.3),

pymssql.connect(server='<TEST_SERVER>', database='<TEST_DB>')

只需将 '' 和 '' 替换为您的服务器和数据库名称。

【讨论】:

以上是关于无法使用带有 Windows 身份验证的 pymssql 进行连接的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Windows 身份验证发布到 asp.net core web api

带有身份验证的 WCF 流式处理

带有 Windows 身份验证的 CORS

JetBrain Rider,使用带有 Windows 身份验证的 IIS Express 时访问被拒绝

在带有 WCF 的 App.config 中使用 Windows 角色身份验证

带有 Windows 身份验证的 ASP.NET Core 2.1 自定义 RoleProvider