在叢集上啟用 Hive 中繼存放區資料表存取控制(舊版)

本文說明如何為叢集上的內建Hive中繼存放區啟用數據表訪問控制。

如需如何在叢集上啟用數據表訪問控制之後,在Hive中繼存放區安全性實體對象上設定許可權的相關信息,請參閱Hive中繼存放區許可權和安全性實體物件(舊版)。

注意

Hive 中繼存放區資料表格存取控制是一種舊版資料控管模型。 Databricks 建議您改用 Unity 目錄,其擁有簡化且以帳戶為中心的控管模型。 您可以將 Hive 中繼存放區所管理的資料表格升級至 Unity 目錄中繼存放區

啟用叢集的數據表訪問控制

資料表存取控制可在兩個版本中使用:

機器學習 Runtime 不支援資料表訪問控制。

重要

即使已針對叢集啟用數據表訪問控制,Azure Databricks 工作區系統管理員仍可存取檔案層級數據。

僅限 SQL 的數據表存取控制

此版本的數據表訪問控制只會將使用者限制為 SQL 命令。

若要在叢集上啟用僅限 SQL 的數據表存取控制,並限制該叢集只使用 SQL 命令,請在叢集的 Spark conf 中設定下列旗標:

spark.databricks.acl.sqlOnly true

注意

僅限 SQL 資料表存取不存取不存取 [系統管理員設定] 頁面中的 [啟用資料表 存取控制] 設定影響。 該設定只會控制全工作區啟用 Python 和 SQL 數據表訪問控制。

Python 和 SQL 資料表訪問控制

此版本的數據表訪問控制可讓使用者執行使用 DataFrame API 和 SQL 的 Python 命令。 在叢集上啟用時,該叢集上的使用者:

  • 只能使用 Spark SQL API 或 DataFrame API 存取 Spark。 在這兩種情況下,根據您可以授與Hive中繼存放區物件的 Azure Databricks 許可權,系統管理員會限制對數據表和檢視的存取。
  • 必須在叢集節點上執行其命令,因為低許可權使用者禁止存取文件系統的敏感性部分,或建立與80和443以外的埠的網路連線。

嘗試繞過這些限制將會失敗,但發生例外狀況。 這些限制已就緒,讓使用者永遠無法透過叢集存取無特殊許可權的數據。

啟用工作區的數據表訪問控制

在使用者可以設定 Python 和 SQL 資料表存取控制之前,Azure Databricks 工作區必須先啟用 Azure Databricks 工作區的數據表存取控制,並拒絕使用者存取未啟用數據表存取控制的叢集。

  1. 移至 [ 設定] 頁面
  2. 按一下 [安全性] 索引標籤。
  3. 開啟 [數據表 存取控制] 選項。

強制執行數據表訪問控制

若要確保您的使用者只存取您想要的數據,您必須將使用者限制為已啟用資料表存取控制的叢集。 特別是,您應該確保:

  • 用戶沒有建立叢集的許可權。 如果他們建立沒有數據表訪問控制的叢集,則可以從該叢集存取任何數據。
  • 用戶對於未針對數據表訪問控制啟用的任何叢集沒有 CAN ATTACH TO 許可權。

如需詳細資訊,請參閱 計算許可權

建立已啟用數據表訪問控制的叢集

數據表存取控制預設會在具有 共用存取模式的叢集中啟用。

若要使用 REST API 建立叢集,請參閱 建立新的叢集

設定資料物件的許可權

請參閱Hive中繼存放區許可權和安全性實體物件(舊版)。