Skip to main content
 首页 » 编程设计

python之如何使用 AD 通用身份验证将 Python 的 pyodbc 连接到 MS SQL

2025年05月04日25tuyile006

我连接到两个数据库,第一个使用“SQL Server 身份验证”,第二个使用“Active Directory 通用身份验证”。

在 Win 7、python 2.7.12、pyodbc v4.0.17 上运行此程序,安装了 Microsoft 在线服务登录助手,我通常从 MSSMS 2016 访问数据库。

对于第一个数据库,我使用了以下有效的数据库:

cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=ourDatabase.database.windows.net;PORT=1433;DATABASE=ourDataBaseName;UID=USERID;PWD=PASSWORD') 

第二个数据库我已经尝试了所有这些,但都不起作用:

cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=.\ourDatabase.database.windows.net;DATABASE=ourDataBaseName;UID=user@companydomain.com;PWD=MyPass;Trusted_Connection=yes') 
 
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=ourDatabase.database.windows.net;DATABASE=ourDataBaseName;UID=user@companydomain.com;PWD=MyPass;Trusted_Connection=yes') 
 
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=ourDatabase.database.windows.net;DATABASE=ourDataBaseName;UID=user;PWD=MyPass;Trusted_Connection=yes') 
 
cnxn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER=.\ourDatabase.database.windows.net;DATABASE=ourDataBaseName;UID=user@companydomain.com;PWD=MyPass;Trusted_Connection=yes') 

我在这里错过了什么?

请您参考如下方法:

你试过这个吗:

cnxn = pyodbc.connect('DRIVER={SQL Server Native Client 11.0};SERVER=YOURSERVER;DATABASE=YOURDATABASE;Trusted_Connection=yes') 

请务必使用您正在使用的计算机上可用的驱动程序。要检查您可以使用哪个:

pyodbc.drivers() 

此外,如果您使用的是工作计算机,您可能已经让 obdc 管理员加载了预先配置的连接。要进行检查,您可以在 Windows 菜单上搜索“odbc 管理”,如果您打开并且有您想要的连接,您可以使用它然后调用它:

cnxn = pyodbc.connect('DSN=YOURCONNECTIONNAME')