啟用資料存取設定

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

注意

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

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

重要

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

如需如何啟用資料存取的一般概觀,請參閱 存取控制概觀

注意

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

開始之前

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

設定服務主體

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

  1. 註冊 Microsoft Entra ID 應用程式 並記錄下列屬性:

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

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

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

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

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

    注意

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

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

  7. 按一下 [SQL 倉儲設定 ] 索引 標籤。

  8. 在 [資料存取組態] 欄位中,按一下 [ 新增服務主體 ] 按鈕。

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

  10. 按一下新增

    ADLS2 storage account

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

  11. 按一下 [儲存]。

注意

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

重要

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

設定 SQL 倉儲的資料存取屬性

若要設定具有資料存取屬性的所有倉儲:

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

  2. 按一下 [ SQL 倉儲設定] 索引卷 標。

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

    重要

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

  4. 按一下 [檔案] 。

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

支援的屬性

SQL 倉儲支援下列屬性。 對於結尾 * 為 的專案,支援該前置詞內的所有屬性。 例如, spark.sql.hive.metastore.* 表示 和 都 spark.sql.hive.metastore.jarsspark.sql.hive.metastore.version 受到支援,以及以 開頭 spark.sql.hive.metastore 的任何其他屬性。

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

  • 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 中繼存放區