使用其他域的用户凭据连接到SQL Server

2024-04-25 13:25:57 发布

您现在位置:Python中文网/ 问答频道 /正文

如何使用另一个域中的用户登录名/密码连接到SQL Server数据库?

如果我使用我的帐户连接到数据库,它可以正常工作:

cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=server_name;DATABASE=testdb;UID=MY_Domain\\username;PWD=pass; Trusted connection=YES')

但我需要使用其他用户的凭据,如

cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=server_name;DATABASE=testdb;UID=Another_Domain\\username;PWD=pass; Trusted connection=YES')

当我尝试后一种方法时,我得到的错误是“我的域/用户名登录失败”,而不是 对于用户“另一个域\用户名”。

在这两种情况下,通过运行sqlservermanagementstudio,我可以使用Windows身份验证连接到数据库。


Tags: 用户name数据库sqluidserverdomaindriver
1条回答
网友
1楼 · 发布于 2024-04-25 13:25:57

不能传递UIDPassword并将Trusted_connection=True(第二个连接字符串)设置为作为(模拟的)windows用户连接。您可以作为SQL Server用户(用户名和密码)或作为windows身份验证用户(受信任连接)进行连接。

您的代码应该模拟windows用户(就像SSMS那样),然后只设置Trusted_connection=True

这个MSDN页面WindowsIdentity.Impersonate有一个例子。

由于这是从SSMS工作,它表明在域之间有必要的信任。

相关问题 更多 >