資料存取設定

本文說明 Azure Databricks 系統管理員針對先前稱為 SQL 端點 (的所有 SQL 倉儲所執行的資料存取設定,) 使用 UI。

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

重要事項

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

如需如何啟用資料存取權的一般概觀,請參閱 Databricks SQL 安全性模型和資料存取概觀

規格需求

您必須是 Azure Databricks 系統管理員,才能設定所有 SQL 倉儲的設定。

設定服務主體

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

  1. 註冊 Azure AD 應用程式 並記錄下列屬性:

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

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

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

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

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

    注意

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

  6. 按一下提要欄底部的 [使用者設定] 圖示設定,然後選取[SQL 管理員 主控台]。

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

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

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

  10. 按一下 [新增] 。

    ADLS2 儲存體帳戶

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

  11. 按一下 [檔案] 。

注意

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

重要事項

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

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

若要使用資料存取屬性來設定所有倉儲:

  1. 按一下提要欄底部的 [使用者設定] 圖示設定,然後選取[SQL 管理員 主控台]。

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