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



窗口用户详细信息与我登录的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,但这取决于

相关内容

最新更新