HDInsight 新增了受控識別 (MI) 選項,用於在其叢集供應專案內驗證 SQL 資料庫,並提供更安全的驗證機制。
本文概述在建立 HDInsight 叢集時,使用 [受控識別] 選項進行 SQL 資料庫驗證的程式。
受控識別選項適用於下列資料庫:
| 資料庫 | 代為託管 (HoBo) DB | 自備 (BYO) DB |
|---|---|---|
| Ambari | ✅ | ✅ |
| Hive | ✅ | ✅ |
| Oozie | ✅ | ✅ |
| Ranger (ESP) | ❌ | ❌ |
附註
管理式身份變更可在公共區域使用。 如需在其他地區(聯邦及中國地區)使用,請聯絡 客服 尋求協助。
重要事項
- 建議不要在叢集重新建立之後更新受控識別,因為它可能會中斷叢集作業。
- 當您重新建立具有相同名稱的受控識別時,您必須重新建立包含的使用者並重新指派角色,因為即使名稱保持不變,新的受控識別具有不同的物件識別碼和用戶端識別碼。
在 Azure 入口網站 中建立叢集期間使用受控識別的步驟
在叢集建立期間,瀏覽至 [記憶體] 區段,然後選取 Ambari/Hive/Oozie 的 SQL 資料庫。 選擇受控識別作為驗證方法。
選取要向 SQL 資料庫進行驗證的受控識別。
在對應的 SQL 資料庫中使用受控識別建立自主使用者。
請遵循 Azure SQL 資料庫查詢編輯器中的這些步驟來建立資料庫使用者,並授與讀取寫入權限。 針對您要用於不同服務的每個 SQL 資料庫執行這些步驟,例如 Ambari、Hive 或 Oozie。
附註
使用者名稱必須包含原始受管理的身份名稱,並以使用者定義的尾碼進行擴充。 做為最佳做法,尾碼可以包含其物件識別碼的初始部分。 您可以從受控識別入口網站頁面的入口網站取得受控識別的物件識別碼。
例如:
- MI 名稱:contosoMSI
- 物件識別碼:
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb - user_name 可能是
contosoMSI_aaaaaaaa
CREATE USER {user_name} FROM EXTERNAL PROVIDER WITH OBJECT_ID={object id of cluster managed identity}; ALTER ROLE db_datareader ADD MEMBER {user_name}; ALTER ROLE db_ddladmin ADD MEMBER {user_name}; ALTER ROLE db_datawriter ADD MEMBER {user_name};附註
如果您的資料庫中已經定義角色
db_executor、db_view_def和db_view_state,就不需要繼續進行後續步驟。CREATE ROLE db_executor; GRANT EXECUTE TO db_executor; ALTER ROLE db_executor ADD MEMBER {user_name}; CREATE ROLE db_view_def; GRANT VIEW DEFINITION TO db_view_def; ALTER ROLE db_view_def ADD MEMBER {user_name}; CREATE ROLE db_view_db_state; GRANT VIEW DATABASE STATE TO db_view_db_state; ALTER ROLE db_view_def ADD MEMBER {user_name};輸入必要的詳細資料後,請繼續在入口網站上建立叢集。