我正在使用pymssql库将python连接到Sql Server。我可以使用Windows / SQL Server身份验证进行连接。我想使用Active Directory身份验证进行连接。
尝试了以下连接字符串。但失败并显示错误:
unexpected keyword authentication
conn = pymssql.connect(server='adventureworks.database.windows.net', authentication = 'Active Directory Password',user='username@server.com',password='Enterpasswordhere', database='dbo')
Run Code Online (Sandbox Code Playgroud)
更新2019-11-01:“登录助手”似乎是Windows Essentials的一部分,该产品已经停产,不再可供下载。
如果您在Windows计算机上,则可以使用用于SQL Server的ODBC驱动程序13.1和Microsoft登录助手来执行此操作。
为SQL Server安装ODBC驱动程序13.1
https://www.microsoft.com/download/details.aspx?id=53339
安装登录助手(链接断开)
http://go.microsoft.com/fwlink/?LinkId=234947
测试连接
导入pyodbc
服务器=以Windows.net结尾的服务器
名
数据库= 数据库
用户名= 用户名
密码= 密码
表名= 表名
driver ='{用于SQL Server的ODBC驱动程序13}'
cnxn = pyodbc.connect('DRIVER ='+驱动程序+
'; PORT = 1433; SERVER ='+服务器+
'; PORT = 1443; DATABASE ='+ database +
'; UID ='+用户名+
'; PWD ='+密码+
'; Authentication = ActiveDirectoryPassword')
cursor = cnxn.cursor()
cursor.execute(“ SELECT TOP 20 * from” +表名)
row = cursor.fetchone()
排:
打印str(row [0])+“” + str(row [1])
row = cursor.fetchone()
请注意,pymssql.connect 没有“身份验证”参数。您将其作为命名参数传递,这是无效的,以及您看到错误的原因。
请参阅此示例以了解使用 Windows 身份验证进行连接:
conn = pymssql.connect(
host=r'dbhostname\myinstance',
user=r'companydomain\username',
password=PASSWORD,
database='DatabaseOfInterest'
)
Run Code Online (Sandbox Code Playgroud)