共用方式為


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

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

注意

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

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

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

工作的預設權限

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

  • 工作的建立者被授與 IS OWNER 權限。
  • 工作區系統管理員會被授與 CAN MANAGE 權限。
  • 工作的建立者將設定為以執行方式的

工作的管理員權限

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

作業如何與 Unity 目錄許可權互動?

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

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

注意

Unity 目錄授與和舊版數據表 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 目錄相容的計算組態

    Unity 目錄數據控管需要您使用支援的計算組態。

    作業和 SQL 倉儲的無伺服器計算一律使用 Unity 目錄。

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

    使用 Unity Catalog 設定的 Delta Live Tables 管線有一些限制。 請參閱限制

  • 限制生產工作的權限

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

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

    只有將 能管理是擁有者 的許可權授予給可以信任其修改產品程式碼的使用者。

控制 DPS 的存取

作業訪問控制可讓作業擁有者和系統管理員授與作業的細微許可權。 有下列權限可供使用:

注意

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

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

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

設定工作權限

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

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

管理工作擁有者

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