你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用托管标识运行更新策略

适用于:✅Azure 数据资源管理器

在以下情况下,必须使用托管标识配置更新策略:

配置了托管标识的更新策略代表该托管标识执行。

本文介绍如何配置系统分配的或用户分配的托管标识,并使用该标识以创建更新策略。

先决条件

配置托管标识

托管标识分为两种类型:

  • 系统分配:系统分配的标识将连接到群集,删除该群集时也会删除该标识。 对于每个群集,只能分配一个系统分配的标识。

  • 用户分配:用户分配的托管标识是独立的 Azure 资源。 可以将多个用户分配的标识分配给群集。

选择以下选项卡之一来设置首选的托管标识类型。

  1. 按照步骤添加用户分配的标识

  2. 在 Azure 门户中,在托管标识资源的左侧菜单中选择“属性”。 复制并保存 租户 ID主体 ID ,以便在以下步骤中使用。

    包含托管标识 ID 的 Azure 门户区域的屏幕截图。

  3. 运行以下 .alter-merge 策略managed_identity 命令,替换为 <objectId> 上一步中的托管标识 主体 ID 。 此命令对群集设置托管标识策略,这样就能将托管标识用于更新策略。

    .alter-merge cluster policy managed_identity ```[
        {
          "ObjectId": "<objectId>",
          "AllowedUsages": "AutomatedFlows"
        }
    ]```
    

    注意

    若要对特定数据库设置策略,请使用 database <DatabaseName> 而不是 cluster

  4. 运行以下命令,授予托管标识对更新策略查询引用的所有数据库的数据库查看者权限。

    .add database <DatabaseName> viewers ('aadapp=<objectId>;<tenantId>')
    

    替换为 <DatabaseName> 相关数据库, <objectId> 将步骤 2 中的托管标识 主体 ID 替换为步骤 2 <tenantId> 中的Microsoft Entra ID 租户 ID

创建更新策略

选择以下选项卡之一,创建代表用户分配或系统分配的托管标识运行的更新策略。

运行 .alter table policy update 命令并将 ManagedIdentity 属性设置为托管标识对象 ID。

例如,以下命令会更改 MyDatabase 数据库中表 MyTable 的更新策略。 请务必注意,SourceQuery 参数只应引用定义更新策略的同一数据库中的对象。 但是,Query 参数指定的函数中包含的代码可以与其他数据库中的表交互。 例如,函数 MyUpdatePolicyFunction() 可以代表用户分配的托管标识访问 OtherDatabase 中的 OtherTable<objectId> 应是托管标识对象 ID。

.alter table MyDatabase.MyTable policy update
```
[
    {
        "IsEnabled": true,
        "Source": "MyTable",
        "Query": "MyUpdatePolicyFunction()",
        "IsTransactional": false,
        "PropagateIngestionProperties": false,
        "ManagedIdentity": "<objectId>"
    }
]
```