你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用托管标识运行更新策略
适用于:✅Azure 数据资源管理器
在以下情况下,必须使用托管标识配置更新策略:
- 更新策略查询引用其他数据库中的表时
- 更新策略查询引用启用了 行级别安全策略的表时
配置了托管标识的更新策略代表该托管标识执行。
本文介绍如何配置系统分配的或用户分配的托管标识,并使用该标识以创建更新策略。
先决条件
- 群集和数据库创建群集和数据库。
- 数据库的 AllDatabasesAdmin 权限。
配置托管标识
托管标识分为两种类型:
系统分配:系统分配的标识将连接到群集,删除该群集时也会删除该标识。 对于每个群集,只能分配一个系统分配的标识。
用户分配:用户分配的托管标识是独立的 Azure 资源。 可以将多个用户分配的标识分配给群集。
选择以下选项卡之一来设置首选的托管标识类型。
按照步骤添加用户分配的标识。
在 Azure 门户中,在托管标识资源的左侧菜单中选择“属性”。 复制并保存 租户 ID 和 主体 ID ,以便在以下步骤中使用。
运行以下 .alter-merge 策略managed_identity 命令,替换为
<objectId>
上一步中的托管标识 主体 ID 。 此命令对群集设置托管标识策略,这样就能将托管标识用于更新策略。.alter-merge cluster policy managed_identity ```[ { "ObjectId": "<objectId>", "AllowedUsages": "AutomatedFlows" } ]```
注意
若要对特定数据库设置策略,请使用
database <DatabaseName>
而不是cluster
。运行以下命令,授予托管标识对更新策略查询引用的所有数据库的数据库查看者权限。
.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
的更新策略。 请务必注意,Source
和 Query
参数只应引用定义更新策略的同一数据库中的对象。 但是,Query
参数指定的函数中包含的代码可以与其他数据库中的表交互。 例如,函数 MyUpdatePolicyFunction()
可以代表用户分配的托管标识访问 OtherDatabase
中的 OtherTable
。 <objectId>
应是托管标识对象 ID。
.alter table MyDatabase.MyTable policy update
```
[
{
"IsEnabled": true,
"Source": "MyTable",
"Query": "MyUpdatePolicyFunction()",
"IsTransactional": false,
"PropagateIngestionProperties": false,
"ManagedIdentity": "<objectId>"
}
]
```