Sql server 使用Python通过Windows身份验证连接到MS SQL Server?

Sql server 使用Python通过Windows身份验证连接到MS SQL Server?,sql-server,sql-server-2008-r2,odbc,windows-authentication,pyodbc,Sql Server,Sql Server 2008 R2,Odbc,Windows Authentication,Pyodbc,如何使用Windows身份验证将MS SQL Server与pyodbc库连接 我可以通过MS Access和SQL Server Management Studio进行连接,但无法获得Python的工作连接ODBC字符串 以下是我尝试过的内容(也没有使用'Trusted\u Connection=yes'): 您可以将连接字符串指定为一个使用分号(;)作为参数分隔符的长字符串 工作示例: 导入pyodbc cnxn=pyodbc.connect(r'Driver=sqlserver;Serve

如何使用Windows身份验证将MS SQL Server与pyodbc库连接

我可以通过MS Access和SQL Server Management Studio进行连接,但无法获得Python的工作连接ODBC字符串

以下是我尝试过的内容(也没有使用
'Trusted\u Connection=yes'
):


您可以将连接字符串指定为一个使用分号(
)作为参数分隔符的长字符串

工作示例:

导入pyodbc
cnxn=pyodbc.connect(r'Driver=sqlserver;Server=。\SQLEXPRESS;Database=myDB;Trusted_Connection=yes;'))
cursor=cnxn.cursor()
cursor.execute(“从myContacts中选择LastName”)
而1:
row=cursor.fetchone()
如果不是世界其他地区:
打破
打印(行。姓氏)
cnxn.close()
对于具有大量参数的连接字符串,以下内容将实现相同的功能,但更具可读性:

conn\u str=(
r'Driver=SQL Server;'
r'Server=。\SQLEXPRESS;'
r'Database=myDB;'
r'Trusted_Connection=yes;'
)
cnxn=pyodbc.connect(conn_str)

(请注意,各个字符串组件之间没有逗号。)

也可以使用关键字指定Windows身份验证。与公认的答案在功能上没有什么不同,我认为它使代码格式设置更加容易:

cnxn = connect(driver='{SQL Server}', server='localhost', database='test',               
               trusted_connection='yes')

只是想添加一些东西,因为我看到这里使用localhost的解决方案;根据我的经验,SQL Server在这方面存在问题,不确定它是ODBC驱动程序还是服务本身,如果不想指定本地计算机名称,则更喜欢使用(本地)

cnxn = connect(driver='{SQL Server}', server='(local)', database='test',               
               trusted_connection='yes')

谢谢,
\
语法起到了作用。请注意:
pyodbc.connect('Trusted_Connection=yes',driver='{SQL Server}',Server='.\[Server_name]',database='[database_name]')
也起作用。如何使用userid和password进行连接这对我来说不起作用。但下面的注释仍然有效。是否有任何方法可以传递一组不同的windows身份验证凭据?e、 g.“受信任的_连接=是;UID=废话;PWD=blah'?@mdeges-并非如此;Microsoft的ODBC驱动程序将
可信连接
UID
/
PWD
视为相互排斥的。Windows客户端上的“首选”解决方案是通过(命令行)或[Shift-Right_click]>“以不同用户身份运行”(GUI)以其他用户身份运行应用程序。Linux上相应的解决方法是使用FreeTDS ODBC驱动程序,该驱动程序仍然通过
DOMAIN=
连接字符串参数支持较旧的NTLM身份验证方案。这需要更高<代码>本地主机对我不起作用<代码>(本地)未执行。
cnxn = connect(driver='{SQL Server}', server='(local)', database='test',               
               trusted_connection='yes')