Azure数据库弹性查询是否支持Azure AD作为连接凭据?
Azure SQL弹性查询的Azure AD凭据支持说明
目前Azure SQL数据库弹性查询(跨RDBMS类型外部数据源场景)已经支持使用Azure Active Directory(AAD)作为连接凭据,数年前公开示例里只支持SQL用户创建跨库连接凭据是功能初期的限制,该限制现已解除。
配置AAD凭据的流程和早年SQL用户的配置逻辑基本一致,核心区别是创建数据库范围凭据(DATABASE SCOPED CREDENTIAL)时的IDENTITY参数要匹配你使用的AAD身份类型,不需要设置SQL认证的用户名密码组合:
- 使用系统分配托管标识连接时,IDENTITY固定填
Managed Identity,不需要配置SECRET参数 - 使用用户分配托管标识连接时,IDENTITY填
Managed Identity,同时SECRET参数填写用户分配托管标识的资源ID - 使用AAD服务主体连接时,IDENTITY填写服务主体对应的AAD对象ID,SECRET参数填写服务主体的客户端密钥
- 使用普通AAD用户/组连接时,IDENTITY填
AAD User,SECRET参数填写对应用户的密码(组身份不需要填SECRET)
注意所有用于跨库连接的AAD身份,必须提前在目标远程数据库中创建对应用户,并授予外部表查询所需的SELECT权限,否则弹性查询执行时会抛出权限错误。
以系统分配托管标识场景为例,完整配置代码如下:
-- 第一步:创建基于AAD托管标识的数据库范围凭据 CREATE DATABASE SCOPED CREDENTIAL AAD_MI_Cred WITH IDENTITY = 'Managed Identity'; -- 第二步:创建外部数据源,引用上述AAD凭据 CREATE EXTERNAL DATA SOURCE RemoteReferenceData WITH ( TYPE=RDBMS, LOCATION='myserver.database.windows.net', DATABASE_NAME='ReferenceData', CREDENTIAL= AAD_MI_Cred );
你提到的早年SQL用户配置方式目前依然可用,但已经不是唯一的凭据配置选项。
内容的提问来源于stack exchange,提问作者BlakeB9
相关产品推荐
相关产品推荐

