如何通过Bicep为Azure Data Factory链接服务的UA MI创建凭据?
使用Bicep配置Azure Data Factory链接服务(用户分配托管身份认证)
你不需要单独创建Microsoft.DataFactory/factories/credentials资源,当前版本的ADF链接服务可以直接在配置中引用用户分配托管身份(UA MI),无需额外的凭据资源。以下是完整的实现步骤和代码示例:
1. 确保数据工厂已关联UA MI
首先需要在数据工厂资源中配置身份信息,将已创建的UA MI附加到ADF:
param uamiName string param adfName string param location string // 已创建的用户分配托管身份 resource uami 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = { name: uamiName location: location } // 配置数据工厂并附加UA MI resource dataFactory 'Microsoft.DataFactory/factories@2018-06-01' = { name: adfName location: location identity: { type: 'UserAssigned' // 若需要同时使用系统分配身份,可改为'SystemAssigned,UserAssigned' userAssignedIdentities: { '${uami.id}': {} } } }
2. 创建使用UA MI认证的Azure SQL链接服务
在链接服务的typeProperties中,指定authenticationType为ManagedIdentity,并直接引用UA MI的资源ID:
param sqlServerName string param sqlDbName string // Azure SQL数据库链接服务(UA MI认证) resource sqlLinkedService 'Microsoft.DataFactory/factories/linkedservices@2018-06-01' = { parent: dataFactory name: 'AzureSql_UAMI_LinkedService' properties: { type: 'AzureSqlDatabase' typeProperties: { connectionString: 'Server=tcp:${sqlServerName}.database.windows.net,1433;Database=${sqlDbName};' authenticationType: 'ManagedIdentity' managedIdentity: { resourceId: uami.id } } } }
3. 为UA MI授予SQL数据库权限
需要确保UA MI拥有访问目标SQL数据库的权限,可通过Bicep直接配置数据库用户和角色分配:
// 引用已存在的SQL服务器和数据库资源(需提前定义或引用) resource sqlServer 'Microsoft.Sql/servers@2021-11-01' existing = { name: sqlServerName } resource sqlDatabase 'Microsoft.Sql/servers/databases@2021-11-01' existing = { parent: sqlServer name: sqlDbName } // 创建关联UA MI的SQL数据库用户 resource sqlDbUser 'Microsoft.Sql/servers/databases/users@2021-11-01' = { parent: sqlDatabase name: uami.name properties: { externalId: uami.properties.principalId type: 'ExternalUser' } } // 为用户分配db_datareader角色(可根据需求替换为其他角色) resource sqlDbRoleAssignment 'Microsoft.Sql/servers/databases/roleAssignments@2021-11-01' = { parent: sqlDatabase name: guid() properties: { principalId: uami.properties.principalId roleDefinitionName: 'db_datareader' } }
关键说明
- 前端操作中“选择或创建凭据”的步骤,在Bicep中无需单独创建凭据资源,直接在链接服务配置中引用UA MI的ID即可完成关联。
- 必须确保UA MI已被授予目标SQL数据库的相应权限,否则链接服务无法正常访问数据库。
内容的提问来源于stack exchange,提问作者Optional
相关产品推荐
相关产品推荐

