【问题标题】:sqlalchemy won't use username with ActiveDirectoryIntegrated?sqlalchemy 不会将用户名与 ActiveDirectoryIntegrated 一起使用?
【发布时间】:2021-12-02 16:31:57
【问题描述】:

我正在尝试使用 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]不可能 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 过去。 (0)") (此错误的背景: https://sqlalche.me/e/14/dbapi)

抱歉,这是法语,但这意味着 SqlAlchemy(或 pyodbc?)在与“ActiveDirectoryIntegrated”一起使用时不会使用“用户名”或“密码”设置。

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

【问题讨论】:

    标签: python sqlalchemy azure-active-directory pyodbc


    【解决方案1】:

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

    这样

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

    你可以在这里找到更多关于使用Azure Active Directory with the ODBC Driver的信息

    【讨论】:

      猜你喜欢
      • 2015-07-30
      • 2020-06-14
      • 2015-01-05
      • 2022-01-12
      • 1970-01-01
      • 2019-05-28
      • 2017-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多