You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 19:15:38