共用方式為


使用受控識別來執行更新原則

適用於: ✅Azure 數據總管

更新原則必須在 下列案例中使用受控識別 進行設定:

  • 當更新原則查詢參考其他資料庫中的數據表時
  • 當更新原則查詢參考具有已啟用數據列層級安全策略的 數據表時

使用受控識別設定的更新原則會代表受控識別執行。

在本文中,您將瞭解如何設定系統指派或使用者指派的受控識別,並使用該身分識別建立更新原則。

必要條件

設定受控識別

受控識別有兩種:

  • 系統指派:系統指派的身分識別會連線到您的叢集,並在移除叢集時移除。 每個叢集只允許一個系統指派的身分識別。

  • 使用者指派:使用者指派的受控識別是獨立的 Azure 資源。 您可以將多個使用者指派的身分識別指派給您的叢集。

選取下列其中一個索引標籤,以設定您慣用的受控識別類型。

  1. 請依照步驟新增 使用者指派的身分識別。

  2. 在 Azure 入口網站 中,於受控識別資源的左側功能表中,選取 [屬性]。 複製並儲存租 使用者標識碼主體標識碼 ,以供下列步驟使用。

    具有受控識別標識碼 Azure 入口網站 區域的螢幕快照。

  3. 執行下列 .alter-merge 原則 managed_identity 命令,並將 <objectId> 取代為上一個步驟中的受控識別 主體標識符 。 此命令會在叢集上設定 受控識別原則 ,讓受控識別與更新原則搭配使用。

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

    注意

    若在特定資料庫上設定原則,請使用 database <DatabaseName> 而非 cluster

  4. 執行下列命令,授與更新原則查詢所參考之所有資料庫的受控識別 資料庫查看器 許可權。

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

    將 取代 <DatabaseName> 為相關的資料庫、 <objectId> 步驟 2 中的受控識別 主體標識碼 ,以及 <tenantId> 步驟 2 中的 Microsoft Entra ID 租使用者識別碼

建立更新原則

選取下列其中一個索引標籤,以建立代表使用者指派或系統指派的受控識別執行的更新原則。

執行 .alter table policy update 命令, ManagedIdentity 並將 屬性設定為受控識別物件標識符。

例如,下列命令會改變資料庫中MyDatabase數據表MyTable的更新原則。 請務必注意, SourceQuery 參數應該只參考定義更新原則之相同資料庫中的物件。 不過,參數中所 Query 指定函式中包含的程式代碼可以與其他資料庫中的數據表互動。 例如,函 MyUpdatePolicyFunction() 式可以代表使用者指派的受控識別存取 OtherTable OtherDatabase<objectId> 應該是受控識別物件標識碼。

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