Python pyodbc使用Sql Server身份验证连接到Sql Server

Python pyodbc使用Sql Server身份验证连接到Sql Server,python,sql-server,pyodbc,sql-server-authentication,Python,Sql Server,Pyodbc,Sql Server Authentication,窗口用户详细信息与我登录的Sql Server用户不同。因此,我尝试使用pyodbc连接到数据库,使用用户名(Admin_JJack)和密码。但是窗口用户(Jack)的连接显示失败,我不知道哪里出了问题 我的连接字符串: connection = pyodbc.connect( "Driver={"SQL Driver"};" "Server= "ServerName";" "Database="DatabaseName";" "UID="UserName";"

窗口用户详细信息与我登录的Sql Server用户不同。因此,我尝试使用pyodbc连接到数据库,使用用户名(Admin_JJack)和密码。但是窗口用户(Jack)的连接显示失败,我不知道哪里出了问题

我的连接字符串:

connection = pyodbc.connect(
    "Driver={"SQL Driver"};"
    "Server= "ServerName";"
    "Database="DatabaseName";"
    "UID="UserName";"
    "PWD="Password";"
    "Trusted_Connection=yes"
)
pyodbc.InterfaceError:('28000',“[28000][Microsoft][SQL Server Native Client 11.0][SQL Server]用户'Jack'登录失败。(18456)(SQLDriverConnect)

如何使用sql server身份验证连接到数据库?

使用“Trusted_Connection=yes”时,将忽略UID和PWD密钥,并使用Windows帐户进行身份验证

如果要使用UID和PWD值而不是Windows NTLM帐户进行身份验证,则必须使用“Trusted_Connection=No”或从连接字符串中删除此选项

受信任的\u连接

指定用户是否通过使用通过用户帐户进行连接 Kerberos[RFC4120]或其他特定于平台的身份验证 按照fIntSecurity字段的规定(有关详细信息,请参阅[MS-TDS] 第2.2.6.4节)

有效值为“是”、“1”或空字符串,它们是 等效值,或“否”。如果未指定值“否”,则 使用“是”

如果该值为“否”,则必须使用UID和PWD键 与数据源建立连接

如果DSN密钥和UID密钥未包含在连接中 字符串,或者如果UID键的值为空字符串,则 受信任的\u连接密钥必须为“是”。如果受信任的\u连接 键未在连接字符串中指定,值必须为 从DSN密钥中设置的内容中获取。如果 DSN中未指定受信任的\u连接密钥,或者如果给定的DSN 不存在,默认值为“否”

如果Trusted_连接密钥的值为“Yes”,则UID和 PWD键被忽略。否则,必须指定UID键

在Microsoft实施中,此用户帐户是Windows用户 当 受信任的连接密钥为“是”


来源:

是SQL Server登录(SQL Server身份验证)的
UID
PWD
凭据或者它们是用于不同于运行Python代码的Windows帐户的Windows登录?您能够使用与其他数据库客户端相同的凭据登录吗?@PauloScardine是的,我能够使用该用户名(Admin_JJack)和密码t在SSMS登录。@GordThompson我使用远程桌面连接运行脚本,并使用用户名(Admin_JJack)和密码建立连接以登录sql server。
slightly different syntax:

conn = pyodbc.connect('Driver={SQL Server};'
                        'Server=dbServer1;'
                        'Database=db1;'
                        'UID=user1;'
                        'PWD=uSer1Pass!;'
                        'Trusted_Connection=no;')