gpt4 book ai didi

azure - 使用 Azure AD 身份验证对 Azure SQL DB 进行基于 token 的身份验证支持

转载 作者:行者123 更新时间:2023-12-02 08:30:56 26 4
gpt4 key购买 nike

根据此页面。

https://learn.microsoft.com/en-us/archive/blogs/sqlsecurity/token-based-authentication-support-for-azure-sql-db-using-azure-ad-auth

仅当客户端位于 Windows 环境下时,才支持基于 AAD token 的身份验证来访问 Azure SQL DB。

MacOS 和 Linux 是否支持基于 AAD token 的身份验证来访问 Azure SQL DB?

https://github.com/mkleehammer/pyodbc/issues/228

    token = context.acquire_token_with_client_credentials(
database_url,
azure_client_id,
azure_client_secret
)
print(token)

tokenb = bytes(token["accessToken"], "UTF-8")
exptoken = b''
for i in tokenb:
exptoken += bytes({i})
exptoken += bytes(1)
tokenstruct = struct.pack("=i", len(exptoken)) + exptoken
tokenstruct

SQL_COPT_SS_ACCESS_TOKEN = 1256
CONNSTRING = "DRIVER={};SERVER={};DATABASE={}".format("ODBC Driver 17 for SQL Server", prod_server, prod_db)

db_connector = pyodbc.connect(CONNSTRING, attrs_before={SQL_COPT_SS_ACCESS_TOKEN: tokenstruct})

这是我在 MacOS 下运行的代码,它是 python。

我一直遇到这个问题

pyodbc.InterfaceError: ('28000', "[28000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Login failed for user ''. (18456) (SQLDriverConnect)")

有人有想法吗?

最佳答案

您似乎尚未将应用程序服务主体添加到 Azure SQL 数据库。

您需要做的是:

1。为 Azure SQL Server 启用 AAD 身份验证。请在此步骤中选择一个 AAD 用户。

enter image description here

2。使用您在步骤 1 中设置的用户帐户连接到 Azure SQL 数据库。

3。将您的应用程序服务主体添加到 SQL Server,并向适当的角色发出警报。

CREATE USER [Azure_AD_principal_name] FROM EXTERNAL PROVIDER;
EXEC sp_addrolemember 'db_owner', 'Azure_AD_principal_name';

此处,Azure_AD_principal_name 应是应用程序的名称。

4。使用 AAD 连接到 Azure SQL 数据库

enter image description here

关于azure - 使用 Azure AD 身份验证对 Azure SQL DB 进行基于 token 的身份验证支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61109965/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com