窗口用户详细信息与我登录的Sql Server用户不同。因此,我尝试使用用户名(Admin_JJack(和密码使用pyodbc连接到数据库。但是Window用户(Jack(的连接显示失败了,我不知道哪里出了问题。
我的连接字符串:
connection = pyodbc.connect(
"Driver={"SQL Driver"};"
"Server= "ServerName";"
"Database="DatabaseName";"
"UID="UserName";"
"PWD="Password";"
"Trusted_Connection=yes"
)
pyodbc.InterfaceError:('28000',"[228000][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"或从连接字符串中删除此选项。
Trusted_Connection
指定用户是否使用通过用户帐户进行连接Kerberos[RFC4120]或其他特定于平台的身份验证由fIntSecurity字段指定(有关详细信息,请参阅[MS-TDS]第2.2.6.4节(。
有效值为"是"、"1"或空字符串,它们是等效,或"否"。如果未指定值"否",则使用"是"。
如果值为"否",则必须使用UID和PWD密钥建立与数据源的连接。
如果连接中不包括DSN密钥和UID密钥字符串,或者如果UID键的值为空字符串,则Trusted_Connection密钥必须为"是"。如果Trusted_Connection键未在连接字符串中指定,该值必须为从DSN密钥中的设置内容中获取。如果未在DSN中指定Trusted_Connection密钥,或者如果给定的DSN不存在,默认值为"否"。
如果Trusted_Connection密钥的值为"是",则UID和PWD键被忽略。否则,必须指定UID密钥。
在Microsoft实施中,此用户帐户是Windows用户当的值为Trusted_Connection密钥为"是"。
来源:https://msdn.microsoft.com/
slightly different syntax:
conn = pyodbc.connect('Driver={SQL Server};'
'Server=dbServer1;'
'Database=db1;'
'UID=user1;'
'PWD=uSer1Pass!;'
'Trusted_Connection=no;')
对于windows身份验证,您需要设置Trusted_Connection=yes;如果不起作用,请尝试DSN方法,而不是uid和pwd(https://learn.microsoft.com/en-us/sql/integration-services/import-export-data/connect-to-an-odbc-data-source-sql-server-import-and-export-wizard?view=sql-server-ver15(我建议选择选项1,但这取决于