sqlalchemy 不会将用户名与 ActiveDirectoryIntegrated 一起使用?

sqlalchemy won't use username with ActiveDirectoryIntegrated?

我正在尝试使用 Azure Active Directory 凭据连接到我的数据库,但 SqlAlchemy 抛出错误。这是我的代码:

import sqlalchemy

connexion_str = sqlalchemy.engine.URL.create(
    "mssql+pyodbc",
    username="user@our.host.com",
    password="password",
    host="our-db.database.windows.net:1433",
    database="db-name",
    query={
        "driver": "ODBC DRIVER 17 for SQL Server",
        "authentication": "ActiveDirectoryIntegrated",
    },
)
engine = sqlalchemy.create_engine(connexion_str)
engine.connect()

我收到以下错误:

sqlalchemy.exc.DBAPIError: (pyodbc.Error) ('FA002', "[FA002] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Impossible d'utiliser l'option d'authentification 'ActiveDirectoryIntegrated' avec les options Utilisateur ou Mot de passe. (0) (SQLDriverConnect); [FA002] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Impossible d'utiliser l'option d'authentification 'ActiveDirectoryIntegrated' avec les options Utilisateur ou Mot de passe. (0)") (Background on this error at: https://sqlalche.me/e/14/dbapi)

对不起,这是法语,但这意味着 SqlAlchemy(或 pyodbc?)在与 'ActiveDirectoryIntegrated' 一起使用时不会使用 'username' 或 'password' 设置。

如何使用 Azure AD 凭据连接到我的数据库?

要使用 Azure Active Directory 帐户用户名和密码进行连接,您需要在连接字符串中指定 Authentication=ActiveDirectoryPassword

像这样

server=Server;database=Database;UID=UserName;PWD=Password;Authentication=ActiveDirectoryPassword;

您可以在此处找到有关使用 Azure Active Directory with the ODBC Driver

的更多信息