分享方式:


管理 Databricks 工作的身分識別和權限

本文包含管理 Databricks 工作身分識別和權限的建議和指示。

注意

系統不會從叢集的 Spark 驅動程式記錄 stdoutstderr 串流中修訂祕密。 為了保護敏感性資料,Spark 驅動程式記錄預設只能由對工作具有 [可管理] 權限、單一使用者存取模式和共用存取模式叢集的使用者檢視。 若要允許具有 [可連結至] 或 [可重新啟動] 權限的使用者檢視這些叢集上的記錄,請在叢集設定中設定下列 Spark 組態屬性:spark.databricks.acl.needAdminPermissionToViewLogs false

在「無隔離共用存取模式叢集」上,Spark 驅動程式記錄可由具有 CAN ATTACH TO 或 CAN MANAGE 權限的使用者檢視。 若要限制只有具有 [可管理] 權限的使用者才能讀取記錄,請將 spark.databricks.acl.needAdminPermissionToViewLogs 設定為 true

請參閱 Spark 組態,以了解如何將 Spark 屬性新增至叢集組態。

工作的預設權限

工作預設會設定下列權限:

  • 工作的建立者被授與 IS OWNER 權限。
  • 工作區系統管理員會被授與 CAN MANAGE 權限。
  • 工作的建立者會被設定 [執行身分]

工作的管理員權限

根據預設,工作區管理員可將工作擁有者或 [執行身分] 設定變更為工作區中的任何使用者或服務主體。 帳戶管理員可設定 RestrictWorkspaceAdmins 設定來變更此行為。 請參閱限制工作區管理員

工作如何與 Unity Catalog 權限互動?

會以 [執行身分] 設定中的使用者身分執行工作。 此身分識別會根據下列權限授與進行評估:

  • Unity Catalog 管理的資產,包括資料表、磁碟區、模型和檢視。
  • 舊版 Hive 中繼存放區中註冊資產的舊版資料表存取控制清單 (ACL)。
  • 計算、筆記本、查詢及其他工作區資產的 ACL。
  • Databricks 祕密。 請參閱機密管理

注意

Unity Catalog 授權和舊版資料表 ACL 需要相容的計算存取模式。 請參閱設定工作的計算

SQL 任務和權限

檔案任務是唯一可完全遵守 [執行身分] 識別的 SQL 任務類型。

SQL 查詢、警示和舊版儀表板任務會遵守已設定的共用設定。

  • 以擁有者身分執行:排程的 SQL 任務執行一律使用所設定 SQL 資產擁有者的身分識別。
  • 以檢視人員身分執行:排程的 SQL 任務的執行一律會使用工作 [執行身分] 欄位中設定的身分識別。

若要深入了解查詢共用設定,請參閱設定查詢權限

範例

下列案例說明 SQL 共用設定與工作 [執行身分] 設定的互動:

  • 使用者 A 是名為 my_query 的 SQL 查詢擁有者。
  • 使用者 A 會使用共用設定 [執行身分擁有者] 設定 my_query
  • 使用者 B 將 my_query 排程為名為 my_job 的工作中的任務。
  • 使用者 B 會將 my_job 設定為以名為 prod_sp 的服務主體執行。
  • my_job 執行時,它會使用使用者 A 的身分識別來執行 my_query

現在假設使用者 B 不想要此行為。 從現有的組態開始,將會發生下列情況:

  • 使用者 A 會將 [以檢視人員的身分執行] 的共用設定變更為 my_query
  • my_job 執行時,它會使用識別 prod_sp

設定工作執行的身分識別

若要變更 [執行身分] 設定,必須具有工作的 CAN MANAGE 或 IS OWNER 權限。

您可將 [執行身分] 設定設為您自己,或設定為您擁有 [服務主體使用者] 權利的工作區中的任何服務主體。

若要在工作區 UI 中為工作設定 [執行身分] 設定,請使用下列步驟選取現有的工作:

  1. 按一下側邊欄中的 工作流程圖示 [工作流程]
  2. 在 [名稱] 資料行,按下工作名稱。
  3. 在 [作業詳細資料] 側面板中,按下 [執行身分] 欄位旁的鉛筆圖示。
  4. 搜尋並選取 [使用者] 或 [服務主體]。
  5. 按一下 [檔案] 。

如需使用服務主體的詳細資訊,請參閱下列項目:

工作治理的最佳做法

Databricks 針對所有生產工作建議下列項目:

  • 將工作所有權指派給服務主體

    如果擁有工作的使用者離開您的組織,工作可能會失敗。 使用服務主體,使工作能夠抵禦員工流失。

    根據預設,工作區管理員可管理工作權限,並視需要重新指派所有權。

  • 使用服務主體執行生產工作

    工作預設會使用工作擁有者的權限來執行。 如果您將所有權指派給服務主體,工作會使用服務主體的權限。

    使用生產工作的服務主體可讓您限制生產資料的寫入權限。 如果您使用使用者的權限執行工作,該使用者需要相同的權限,才能編輯工作所需的生產資料。

  • 一律使用與 Unity Catalog 相容的計算組態

    Unity Catalog 資料控管需要您使用支援的計算組態。

    工作與 SQL 倉儲的無伺服器計算一律使用 Unity Catalog。

    對於具有傳統計算的工作,Databricks 建議針對支援的工作負載使用共用存取模式。 視需要使用單一使用者存取模式。

    使用 Unity Catalog 設定的差異即時資料表管線有一些限制。 請參閱限制

  • 限制生產工作的權限

    觸發、停止或重新啟動工作執行的使用者需要 [可管理執行] 權限。

    檢視工作組態或監視執行的使用者需要 [可檢視] 權限。

    僅向受信任可修改生產程式碼的使用者授與 [可管理] 或 [是擁有者] 權限。

控制 DPS 的存取

工作存取控制可讓工作擁有者和管理員對其工作授與微調權限。 有下列權限可供使用:

注意

下表中的每個權限都包含其下方的權限授與。

權限 授與
是擁有者 根據預設,用於 [執行身分] 的身份識別。
可以管理 使用者可編輯工作定義,包括權限。 使用者可暫停和繼續排程。
可管理執行 使用者可觸發和取消工作執行。
可以檢視 使用者可檢視工作執行結果。

如需工作權限等級的詳細資訊,請參閱工作 ACL

設定工作權限

若要在工作區 UI 中為工作設定權限,請使用下列步驟選取現有的工作:

  1. 按一下側邊欄中的 工作流程圖示 [工作流程]
  2. 在 [名稱] 資料行,按下工作名稱。
  3. 在 [工作詳細資料] 面板中,按下 [編輯權限]。 [權限設定] 對話方塊隨即顯示。
  4. 按下 [選取使用者、群組或服務主體...] 欄位,然後開始輸入使用者、群組或服務主體。 欄位會搜尋工作區中的所有可用身分識別。
  5. 按一下 [新增] 。
  6. 按一下 [檔案] 。

管理工作擁有者

只有工作區管理員可編輯工作擁有者。 必須指派一個工作擁有者。 工作擁有者可是使用者或服務主體。