sqlalchemy 不会在 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]不可能d'utiliser l'option d' authentication 'ActiveDirectoryIntegrated'avecles选项Utilisateur/>>>>(0) (SQLDriverConnect);[FA002] [Microsoft][ODBC Driver 17 for SQL Server不可能的d'utiliser l'option d' authentication"ActiveDirectoryIntegrated"提供了多个选项,包括"使用程序"one_answers"禁用程序"过时的。(0)")(关于此错误的背景:https://sqlalche.me/e/14/dbapi)

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

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

要使用Azure ActiveDirectory帐户的用户名和密码进行连接,需要指定Aauthentication =ActiveDirectoryPassword

这样的

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

您可以在这里找到有关使用Azure Active Directory与ODBC驱动程序的更多信息

最新更新