啟用資料存取設定
本文說明 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 儲存體帳戶的存取,請遵循下列步驟:
註冊 Microsoft Entra ID 應用程式 並記錄下列屬性:
- 應用程式 (用戶端) 識別碼 :可唯一識別 Microsoft Entra ID 應用程式的識別碼。
- 目錄(租使用者)識別碼 :可唯一識別 Azure Databricks 中 Microsoft Entra ID 實例的識別碼(稱為目錄(租使用者)識別碼。
- 用戶端密碼 :針對此應用程式註冊建立的用戶端密碼值。 應用程式會使用此秘密字串來證明其身分識別。
在您的儲存體帳戶上,為在上一個步驟註冊的應用程式新增角色指派,以授與儲存體帳戶的存取權。
建立 Azure 金鑰保存庫支援的秘密範圍 或 Databricks 範圍的秘密範圍 ,並記錄範圍名稱屬性的值:
- 範圍名稱 :所建立秘密範圍的名稱。
如果使用 Azure 金鑰保存庫,請移至 [秘密] 區段,並使用 您選擇的名稱建立新的秘密 。 使用您在步驟 1 中取得的「用戶端密碼」,填入此秘密的「值」欄位。 保留您剛才選擇的秘密名稱記錄。
- 秘密名稱 :所建立 Azure 金鑰保存庫秘密的名稱。
如果使用 Databricks 支援的範圍, 請使用 Databricks CLI 建立新的秘密 ,並用它來儲存您在步驟 1 中取得的用戶端密碼。 記下您在此步驟中輸入的秘密金鑰記錄。
- 秘密金鑰:所建立 Databricks 支援的秘密金鑰。
注意
您可以選擇性地建立額外的秘密,以儲存您在步驟 1 取得的用戶端識別碼。
按一下工作區頂端列中的使用者名稱,然後從下拉式清單中選取 [管理員 設定 ]。
按一下 [SQL 倉儲設定 ] 索引 標籤。
在 [資料存取組態] 欄位中,按一下 [ 新增服務主體 ] 按鈕。
設定 Azure Data Lake 儲存體 Gen2 儲存體帳戶的屬性。
按一下新增。
您會看到新的專案已新增至 [資料存取組態] 文字方塊中。
按一下 [儲存]。
注意
您也可以直接編輯 [資料存取組態] 文字方塊專案。
重要
若要將組態屬性設定為秘密的值,而不將秘密值公開至 Spark,請將值設定為 {{secrets/<secret-scope>/<secret-name>}}
。 將 取代為秘密範圍,並以 <secret-name>
秘密名稱取代 <secret-scope>
。 值必須以 {{secrets/ 開頭,並以 }} 結尾。 如需此語法的詳細資訊,請參閱 在 Spark 組態屬性或環境變數中參考秘密的語法 。
設定 SQL 倉儲的資料存取屬性
若要設定具有資料存取屬性的所有倉儲:
按一下工作區頂端列中的使用者名稱,然後從下拉式清單中選取 [管理員 設定 ]。
按一下 [ SQL 倉儲設定] 索引卷 標。
在 [ 資料存取組態 ] 文字方塊中,指定包含 中繼存放區屬性 的機碼/值組。
重要
若要將 Spark 組態屬性設定為秘密的值,而不將秘密值公開至 Spark,請將值設定為
{{secrets/<secret-scope>/<secret-name>}}
。 將 取代為秘密範圍,並以<secret-name>
秘密名稱取代<secret-scope>
。 值必須以 開頭{{secrets/
,}}
並以 結尾。 如需此語法的詳細資訊,請參閱 在 Spark 組態屬性或環境變數中參考秘密的語法 。按一下 [檔案] 。
您也可以使用 Databricks Terraform 提供者 和 databricks_sql_global_config 來設定資料存取屬性。
支援的屬性
SQL 倉儲支援下列屬性。 對於結尾 *
為 的專案,支援該前置詞內的所有屬性。 例如, spark.sql.hive.metastore.*
表示 和 都 spark.sql.hive.metastore.jars
spark.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 中繼存放區 。