有人可以解释如何在机器人框架中使用活动目录密码连接到Azure SQL服务器

问题描述 投票:0回答:1

我们的数据库是使用活动目录密码的Azure SQL服务器。我使用“连接到数据库 pyodbc/pymssql”方法时遇到错误。

连接数据库pyodbc 连接数据库pymssql

两者都不起作用并且出现错误。

我相信这个活动目录密码很棘手,所以上述方法不起作用。有人可以帮忙吗

azure-active-directory robotframework
1个回答
0
投票

当我尝试使用以下代码使用带有 Active Directory 密码的 Pyodbc 连接到 Azure SQL 时:

import pyodbc
 
username = "ADuserName"
password = "ADpassword"
host = "<serverName>.database.windows.net"
database = "<databaseName>"
authentication = "ActiveDirectoryPassword"
driver = '{ODBC Driver 17 for SQL Server}'
conn_string = (
     f'DRIVER={driver};'
    f'SERVER={host};'
    f'DATABASE={database};'
    f'UID={username};'
    f'PWD={password};'
    f'Authentication={authentication};' 
 )
conn = pyodbc.connect(conn_string)
cursor = conn.cursor()
cursor.execute('SELECT @@version')
for row in cursor:
   print(row)

我收到以下错误:

enter image description here

根据本文,MFA 是所有 Azure 租户的默认登录方法。因此,在上面的代码中,我使用

ActiveDirectoryInteractive
而不是
ActiveDirectoryPassword
来符合 MFA 标准。

以下是使用 Active Directory 身份验证连接到 Azure SQL 服务器的代码:

import pyodbc

username = "ADuserName"
host = "<serverName>.database.windows.net"
authentication = "ActiveDirectoryInteractive"
driver = '{ODBC Driver 17 for SQL Server}'
conn_string = (
     f'DRIVER={driver};'
    f'SERVER={host};'
    f'DATABASE={database};'
    f'UID={username};'
    f'Authentication={authentication};' 
 )
conn = pyodbc.connect(conn_string)
cursor = conn.cursor()
cursor.execute('SELECT @@version')
for row in cursor:
   print(row)

会弹出提示输入AD密码进行验证。之后,它成功连接到Azure SQL数据库,没有任何错误。一旦我们使用此方法进行身份验证,连接到服务器时就无需提供密码。通过验证后会自动连接,如下图:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.