共用方式為


啟用資料存取設定

本文說明 Azure Databricks 系統管理員針對所有 SQL 倉儲使用 UI 所執行的數據存取組態。

注意

如果您的工作區已啟用 Unity 目錄,則不需要執行本文中的步驟。 Unity 目錄預設支援 SQL 倉儲。

Databricks 建議使用 Unity 目錄磁碟區或外部位置來連線到雲端物件記憶體,而不是實例配置檔。 Unity 目錄藉由提供集中位置來管理和稽核帳戶中多個工作區的數據存取,藉此簡化數據的安全性和控管。 請參閱什麼是 Unity 目錄?和使用外部位置的 建議。

若要使用 REST API 設定所有 SQL 倉儲,請參閱 SQL 倉儲 API

重要

變更這些設定會重新啟動所有執行中的 SQL 倉儲。

如需如何啟用數據存取權的一般概觀,請參閱 訪問控制清單

需求

  • 您必須是 Azure Databricks 工作區管理員,才能設定所有 SQL 倉儲的設定。

設定服務主體

若要使用服務主體設定 SQL 倉儲對 Azure Data Lake 儲存體 Gen2 記憶體帳戶的存取,請遵循下列步驟:

  1. 註冊 Microsoft Entra ID(先前稱為 Azure Active Directory)應用程式,並記錄下列屬性:

    • 應用程式 (用戶端) 識別碼:可唯一識別 Microsoft Entra ID(先前稱為 Azure Active Directory) 應用程式的標識碼。
    • 目錄(租使用者)標識碼:可唯一識別 Azure Databricks 中 Microsoft Entra ID 實例的標識碼(稱為目錄(租用戶)標識符。
    • 用戶端密碼:針對此應用程式註冊建立的客戶端密碼值。 應用程式會使用此秘密字串來證明其身分識別。
  2. 在您的記憶體帳戶上,為在上一個步驟註冊的應用程式新增角色指派,以授與記憶體帳戶的存取權。

  3. 建立 Azure 金鑰保存庫 支援的秘密範圍Databricks 範圍的秘密範圍,並記錄範圍名稱屬性的值:

    • 範圍名稱:所建立秘密範圍的名稱。
  4. 如果使用 Azure 金鑰保存庫,請移至 [秘密] 區段,請參閱在 Azure 金鑰保存庫 支援的範圍內建立秘密。 然後,使用您在步驟 1 中取得的「客戶端密碼」,填入此秘密的「值」字段。 保留您剛才選擇的秘密名稱記錄。

    • 秘密名稱:所建立 Azure 金鑰保存庫 秘密的名稱。
  5. 如果使用 Databricks 支援的範圍, 請使用 Databricks CLI 建立新的秘密 ,並用它來儲存您在步驟 1 中取得的客戶端密碼。 記下您在此步驟中輸入的秘密金鑰記錄。

    • 秘密金鑰:所建立 Databricks 支援的秘密金鑰。

    注意

    您可以選擇性地建立額外的秘密,以儲存在步驟 1 取得的用戶端識別碼。

  6. 按兩下工作區頂端列中的使用者名稱,然後從下拉式清單中選取[設定]。

  7. 按兩下 [計算] 索引標籤。

  8. 按兩下 [SQL 倉儲] 旁的 [管理]。

  9. 在 [數據存取組態] 字段中,按兩下 [ 新增服務主體 ] 按鈕。

  10. 設定 Azure Data Lake 儲存體 Gen2 儲存器帳戶的屬性。

  11. 按一下新增

    ADLS2 儲存器帳戶

    您會看到新的專案已新增至 [資料存取組態] 文字框中。

  12. 按一下 [檔案] 。

您也可以直接編輯 [資料存取組態] 文字框專案。

設定 SQL 倉儲的數據存取屬性

若要設定具有數據存取屬性的所有倉儲:

  1. 按兩下工作區頂端列中的使用者名稱,然後從下拉式清單中選取[設定]。

  2. 按兩下 [計算] 索引標籤。

  3. 按兩下 [SQL 倉儲] 旁的 [管理]。

  4. 在 [ 資料存取組態 ] 文本框中,指定包含 中繼存放區屬性的機碼/值組。

    重要

    若要將 Spark 組態屬性設定為秘密的值,而不將秘密值公開至 Spark,請將值設定為 {{secrets/<secret-scope>/<secret-name>}}。 取代為秘密範圍,並以<secret-name>秘密名稱取代 <secret-scope> 。 值必須以 開頭 {{secrets/}}並以 結尾。 如需此語法的詳細資訊,請參閱 在Spark組態屬性或環境變數中參考秘密的語法

  5. 按一下 [檔案] 。

您也可以使用 Databricks Terraform 提供者databricks_sql_global_config來設定數據存取屬性。

支援的屬性

  • 對於結尾 *為 的項目,支援該前置詞內的所有屬性。

    例如,spark.sql.hive.metastore.*表示和都spark.sql.hive.metastore.jarsspark.sql.hive.metastore.version受到支援,以及以 開頭spark.sql.hive.metastore的任何其他屬性。

  • 對於值包含敏感性資訊的屬性,您可以將敏感性資訊儲存在秘密,並使用下列語法將屬性的值設定為秘密名稱:secrets/<secret-scope>/<secret-name>

SQL 倉儲支援下列屬性:

  • spark.sql.hive.metastore.*
  • spark.sql.warehouse.dir
  • spark.hadoop.datanucleus.*
  • spark.hadoop.fs.*
  • spark.hadoop.hive.*
  • spark.hadoop.javax.jdo.option.*
  • spark.hive.*

如需如何設定這些屬性的詳細資訊,請參閱 外部Hive中繼存放區