无法使用Active Directory身份验证从python连接到SQL Server

Had*_*ict 4 python sql-server

我正在使用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)

Mar*_*ers 6

更新2019-11-01:“登录助手”似乎是Windows Essentials的一部分,该产品已经停产,不再可供下载。


如果您在Windows计算机上,则可以使用用于SQL Server的ODBC驱动程序13.1和Microsoft登录助手来执行此操作。

  1. 为SQL Server安装ODBC驱动程序13.1
    https://www.microsoft.com/download/details.aspx?id=53339

  2. 安装登录助手(链接断开)
    http://go.microsoft.com/fwlink/?LinkId=234947

  3. 测试连接

    导入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()


end*_*and 0

请注意,pymssql.connect 没有“身份验证”参数。您将其作为命名参数传递,这是无效的,以及您看到错误的原因。

请参阅此示例以了解使用 Windows 身份验证进行连接:

conn = pymssql.connect(
    host=r'dbhostname\myinstance',
    user=r'companydomain\username',
    password=PASSWORD,
    database='DatabaseOfInterest'
)
Run Code Online (Sandbox Code Playgroud)

  • 是的,上面的示例仅适用于 Windows 和 Sql 服务器身份验证。我想使用 Active Directory 密码身份验证来访问数据库。 (2认同)