我正在尝试通过Python连接到SQL Server数据库(仅允许Windows身份验证)。 Python部分用作Web API,权限控制在SQL Server的AD组下。因此,除了使用我自己的身份,我还需要使用其他人的身份(提供他们的Windows用户名和密码)
假设我是用户A,我尝试代表用户B登录服务器。(当然,我知道他的Windows登录名)。首先,我使用Python-ldap进行身份验证。
# This step runs successfully
conn_ladp = ldap.initialize("ldap://ladp_address:389")
login_str = 'userB@domain.com'
password = 'userB_pw'
handle = conn_ladp.simple_bind_s(login_str ,password)
然后我尝试连接到服务器
conn_sql = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER=server_name;Trusted_Connection=yes;')
cursor = conn_sql.cursor()
# I checked the permision, it's still using user A's identity.
cursor.execute('some query')
但是它仍然以我当前的身份(用户A)使用。似乎ldap和pyodbc之间存在某种“错误沟通”。谁能帮助我找出如何连接它们并解决问题?谢谢。