подключение к sql-серверу через Python, когда тип аутентификации - Azure Active Directory - PullRequest
1 голос
/ 19 сентября 2019

Я пытаюсь узнать, возможно ли подключиться к SQL Server через Python, если тип аутентификации:

Azure Active Directory - универсальный с поддержкой MFA

Я могу подключиться к этой базе данных с помощью Azure.Строки ниже показывают учетные данные, необходимые для подключения через Azure Data Studio:

connection type : Microsoft SQL Server
server : ***.net
Authentication Type : Azure Active Directory - Universal with MFA support
account : ***.***@mycompany.com
database : target
Server group : default

Я искал повсюду в Интернете, и все, что я вижу в отношении подключения к SQL Server через Python, это когда тип аутентификации SQLавторизоваться.Пожалуйста, помогите, если вы знаете ответ.

1 Ответ

0 голосов
/ 20 сентября 2019

Да, вы можете.Подробнее см. в этом документе .

(только для драйвера Windows.) Интерактивная аутентификация AAD использует технологию многофакторной аутентификации Azure для настройки соединения.В этом режиме с помощью идентификатора входа в систему запускается диалоговое окно аутентификации Azure, которое позволяет пользователю ввести пароль для завершения подключения.Имя пользователя передается в строке подключения.

server=Server;database=Database;UID=UserName;Authentication=ActiveDirectoryInteractive;

Я проверил это на своей стороне, и мой тестовый код, как показано ниже.

import pyodbc
server = 'tonytest920.database.windows.net'
database = 'tonytest'
driver = '{ODBC Driver 17 for SQL Server}'
cnxn = pyodbc.connect('DRIVER='+driver+';SERVER='+server +
                      ';PORT=1433;DATABASE='+database+';Authentication=ActiveDirectoryInteractive;UID=xx@xx.onmicrosoft.com')
cursor = cnxn.cursor()
cursor.execute(
    "select * from Persons")
row = cursor.fetchone()
while row:
    print(str(row[0]) + " " + str(row[1]))
    row = cursor.fetchone()

Примечание : сначала необходимо установить adalsql.dll .Не забудьте выбрать ENU\x86\adalsql.msi.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...