如何使用另一个域中的用户登录名/密码连接到 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')
当我尝试后者时,我收到“MY_Domain\username 登录失败”错误,而不是
对于用户“Another_Domain\用户名”。
在这两种情况下,通过运行 SQL Server Management Studio,我可以使用 Windows 身份验证连接到数据库。
你不能通过UID
and Password
并设置Trusted_connection=True
(您的第二个连接字符串)以(模拟的)Windows 用户身份进行连接。您可以作为 SQL Server 用户(用户名和密码)或 Windows 身份验证用户(可信连接)进行连接。
您的代码应该模拟 Windows 用户(如 SSMS 所做的那样),然后设置Trusted_connection=True
only.
这个 MSDN 页面WindowsIdentity.Impersonate http://msdn.microsoft.com/en-us/library/w070t6ka%28v=vs.110%29.aspx有一个例子。
由于这在 SSMS 中起作用,因此表明域之间存在必要的信任。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)