將 Unity 目錄資料表資源加入 Databricks 應用程式

將 Unity 目錄資料表 加入為 Databricks Apps 資源,讓你的應用程式能查詢和修改儲存在 Unity 目錄中的資料,並具備治理與存取控制。 Unity 目錄資料表提供結構化的資料儲存與細緻權限,讓您的應用程式能安全地讀寫資料,無需硬編碼憑證。

權限要求

要存取 Unity 目錄資料表,應用程式的服務主體必須擁有 USE CATALOG 父目錄的權限、 USE SCHEMA 父架構的權限,以及 SELECT 資料表上的 OR MODIFY 權限。 當你新增資料表資源時,Azure Databricks 會自動將這些權限授予應用程式的服務主體。

若要讓此自動授與成功,每個權限必須符合下列其中一項:

  • 對於 USE CATALOG: 所有帳戶使用者都擁有 USE CATALOG 目錄的權限,或者您擁有 MANAGE 目錄的權限。
  • 對於 USE SCHEMA:所有帳戶使用者都必須擁有在結構描述上的權限,或者您必須擁有 USE SCHEMA在結構描述上的權限。
  • For SELECT 或 MODIFY:要麼所有帳號使用者在表上都有SELECT或MODIFY權限,要麼你在表上擁有MANAGE權限。

請參閱 Unity 目錄權限參考。

新增 Unity 目錄資料表資源

在你將資料表加入資源之前,先先檢視 應用程式資源的前置條件。

  1. 在 應用程式資源 區塊建立或編輯應用程式時,點擊 + 新增資源>UC 表格。
  2. 從工作區可用的資料表中選擇一個 Unity 目錄資料表。 該表格必須已存在於 Unity 目錄中。
  3. 為您的應用程式選取適當的權限層級:
    • 選擇: 授權應用程式查詢並讀取資料表資料。 這對於只需要讀取資料的應用程式來說很適合。
    • 修改: 授權應用程式插入、更新及刪除資料表中的資料。 此權限隱含包含 SELECT,因此應用程式也能讀取資料。
  4. (可選)指定一個自訂的資源金鑰,這就是你在應用程式設定中參考資料表的方式。 預設索引鍵是 table。

備註

MODIFY 並非所有表格類型皆可用。 例如,視圖不支持 MODIFY 特權。 如果表格不支援 MODIFY,則僅 SELECT 可用。

環境變數

當你部署 Unity Catalog 資料表資源的應用程式時,Azure Databricks 會透過環境變數暴露該資料表的完整三層名稱,你可以用 valueFrom 欄位來參考。

設定範例:

env:
  - name: UC_TABLE_NAME
    valueFrom: table # Use your custom resource key if different

在您的應用程式中使用表格:

import os
from databricks.sdk import WorkspaceClient

# Access the table name
table_name = os.getenv("UC_TABLE_NAME")

# Initialize workspace client
w = WorkspaceClient()

# Query the table using a SQL warehouse resource
result = w.statement_execution.execute_statement(
    warehouse_id=os.getenv("DATABRICKS_WAREHOUSE_ID"),  # Requires a SQL warehouse resource
    statement=f"SELECT * FROM {table_name} LIMIT 10"
)

如需詳細資訊,請參閱 使用環境變數存取資源。

移除 Unity Catalog 資料表資源

當你從應用程式中移除 Unity 目錄資料表資源時,應用程式的服務主體會失去在資料表上的 SELECT、MODIFY 和 ALL PRIVILEGES 授權。 Azure Databricks 也會嘗試撤銷階層式目錄與架構權限。 該表格本身保持不變,並持續對擁有適當權限的其他使用者及應用程式開放。

最佳實務

在使用 Unity 目錄資料表資源時,請考慮以下幾點:

  • 授予最低權限。 除非你的應用程式需要寫入資料到表格,否則請使用 SELECT。
  • 當你的應用程式需要對資料表執行 SQL 查詢時,將資料表資源與 SQL 倉儲資源 結合。
  • 為不同資料表使用不同的資料表資源,而不是給予廣泛的結構層級存取權限,這樣你才能應用最小權限原則。
  • 考慮使用 Unity 目錄卷 來處理非結構化資料,使用 Unity 目錄資料表來處理結構化資料。