次の方法で共有


マネージド ID を使用して更新ポリシーを実行する

適用対象: ✅Azure データ エクスプローラー

更新ポリシーは、次のシナリオで 管理 ID で構成する必要があります。

マネージド ID で構成された更新ポリシーは、マネージド ID に代わって実行されます。

この記事では、システム割り当てマネージド ID またはユーザー割り当てマネージド ID を構成し、その ID を使用して更新ポリシーを作成する方法について説明します。

前提条件

マネージド ID の構成

マネージド ID には、次の 2 種類があります。

  • システム割り当て: システム割り当て ID はクラスターに接続され、クラスターが削除されると削除されます。 クラスターごとに許可されるシステム割り当て ID は 1 つだけです。

  • ユーザー割り当て: ユーザー割り当てマネージド ID は、スタンドアロンの Azure リソースです。 クラスターには、複数のユーザー割り当て ID を割り当てることができます。

次のいずれかのタブを選択して、優先するマネージド ID の種類を設定します。

  1. ユーザー割り当て ID の追加手順に従います。

  2. Azure portal のマネージド ID リソースの左側のメニューで、 Properties を選択します。 次の手順で使用するために、 Tenant IdPrincipal ID をコピーして保存します。

    マネージド ID ID を含む Azure portal 領域のスクリーンショット。

  3. 次の .alter-merge policy managed_identity コマンドを実行し、 <objectId> を前の手順のマネージド ID Principal ID に置き換えます。 このコマンドは、マネージド ID を更新ポリシーと共に使用できるようにする管理 ID ポリシーをクラスターに設定します。

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

    Note

    特定のデータベースにポリシーを設定するには、clusterではなくdatabase <DatabaseName>を使用します。

  4. 次のコマンドを実行して、更新ポリシー クエリによって参照されるすべてのデータベースに対するマネージド ID Database Viewer アクセス許可を付与します。

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

    <DatabaseName>を関連するデータベースに置き換え、<objectId>は手順 2 のマネージド ID Principal ID<tenantId>は手順 2 の Microsoft Entra ID Tenant Id に置き換えます。

更新ポリシーを作成する

次のいずれかのタブを選択して、ユーザー割り当てマネージド ID またはシステム割り当てマネージド ID に代わって実行される更新ポリシーを作成します。

ManagedIdentity プロパティをマネージド ID オブジェクト ID に設定して、.alter table policy update コマンドを実行します。

たとえば、次のコマンドは、データベース MyDatabase内のテーブル MyTableの更新ポリシーを変更します。 SourceパラメーターとQuery パラメーターの両方が、更新ポリシーが定義されている同じデータベース内のオブジェクトのみを参照する必要があることに注意してください。 ただし、 Query パラメーターに指定された関数に含まれるコードは、他のデータベースにあるテーブルと対話できます。 たとえば、関数MyUpdatePolicyFunction()は、ユーザー割り当てマネージド ID の代わりにOtherDatabaseOtherTableにアクセスできます。 <objectId> はマネージド ID オブジェクト ID である必要があります。

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