【发布时间】:2018-12-31 16:52:11
【问题描述】:
我尝试使用pyodbc库连接sql server,
driver= '{ODBC Driver 17 for SQL Server}'
cnxn = pyodbc.connect('DRIVER='+driver+';SERVER='+host+';PORT=1443;DATABASE='+database+';UID='+user+';PWD='+ password+';Authentication=ActiveDirectoryPassword')
在上面的代码中,我选择 ActiveDirectoryPassword(AAD) 作为我的身份验证类型,因为我只有 AAD 访问权限。但是收到以下错误消息。
InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')
当我将驱动程序更改为 ODBC Driver 13 时,收到不同的错误消息。
driver= '{ODBC Driver 13 for SQL Server}'
cnxn = pyodbc.connect('DRIVER='+driver+';SERVER='+host+';PORT=1443;DATABASE='+database+';UID='+user+';PWD='+ password+';Authentication=ActiveDirectoryPassword')
这次我收到以下错误消息。
OperationalError: ('08001', '[08001] [Microsoft][ODBC Driver 13 for SQL Server]SQL Server Network Interfaces: The Microsoft Online Services Sign-In Assistant could not be found. Install it from http://go.microsoft.com/fwlink/?LinkId=234947. If it is already present, repair the installation. [2]. (2) (SQLDriverConnect); [08001] [Microsoft][ODBC Driver 13 for SQL Server]Client unable to establish connection (2); [08001] [Microsoft][ODBC Driver 13 for SQL Server]Invalid connection string attribute (0)')
是否可以使用带有 AAD 身份验证的 pyodbc 连接 azure sql server?如果可能,使用 AAD 对 sql server 进行身份验证的正确方法是什么?
【问题讨论】:
标签: python sql-server azure pyodbc