啟用蜂巢metastore表訪問控製集群上(遺留)

請注意

本文包含引用白名單,磚不使用的一個術語。從軟件中刪除這個詞時,我們就將它從這篇文章。

本文描述了如何啟用表訪問控製內置的蜂巢metastore集群上。

如何設置信息上的特權蜂巢metastore可獲得的對象一旦啟用訪問控製表在一個集群中,看到的蜂巢metastore特權和可獲得的對象(遺留)

請注意

蜂巢metastore表訪問控製是一個遺留數據治理模型。磚建議你使用統一目錄而不是它的簡單性和account-centered治理模型。你可以表由蜂巢metastore升級到統一目錄metastore

使集群表訪問控製

表訪問控製有兩個版本:

  • SQL-only表訪問控製限製用戶的SQL命令。你是局限於Apache火花的SQL API,因此不能使用Python, Scala, R,抽樣api,或客戶直接從雲存儲讀取數據,比如DBUtils

  • Python和SQL表訪問控製,它允許用戶運行SQL、Python和PySpark命令。你是局限於火花的SQL API和DataFrame API,因此不能使用Scala, R,抽樣api,或客戶直接從雲存儲讀取數據,比如DBUtils

重要的

即使表啟用訪問控製集群,磚管理員訪問文件級數據。

SQL-only表訪問控製

這個版本的表訪問控製限製用戶的SQL命令。

啟用SQL-only表訪問控製集群和集群隻使用SQL命令的限製,設置以下標誌的集群火花相依:

spark.databricks.acl。sqlOnly真實

請注意

訪問SQL-only表訪問控製不受影響的啟用訪問控製表設置在管理設置頁麵。設置控件的workspace-wide支持Python和SQL表訪問控製。

Python和SQL表訪問控製

這個版本的表訪問控製允許用戶運行Python命令使用DataFrame API以及SQL。當上啟用一個集群,集群的用戶:

  • 隻能使用火花SQL API訪問火花或DataFrame API。在這兩種情況下,訪問表和視圖由管理員根據磚的限製權限可以授予蜂巢metastore對象

  • 必須作為low-privilege用戶集群節點上運行的命令禁止訪問文件係統的敏感部分或創建網絡連接端口80和443。

    • 隻有內置的火花函數可以創建網絡連接端口80和443。

    • 隻有管理員用戶或用戶任何文件特權可以從外部數據庫通過讀取數據PySpark JDBC連接器

    • 如果你想讓Python程序能夠訪問額外的出站端口,可以設置火花配置spark.databricks.pyspark.iptable.outbound.whitelisted.ports你想要的港口允許訪問。支持格式的配置值(端口(端口):[、港口港[:]]…],例如:21日,22日,9000:9999。端口必須在有效的範圍內,也就是說,0 - 65535

試圖繞過這些限製將失敗與一個例外。這些限製是通過集群用戶不能訪問未經授權的數據。

啟用表訪問控製您的工作區

之前用戶可以配置Python和SQL表訪問控製、磚管理員必須啟用表訪問控製磚工作區和拒絕用戶訪問集群不支持訪問控製表。

  1. 管理員設置頁麵

  2. 單擊工作空間設置選項卡。

  3. 單擊訪問控製集群,池和工作切換。

  4. 點擊確認

  5. 單擊訪問控製表切換。

  6. 點擊確認

強製訪問控製表

確保您的用戶訪問隻有你想要的數據,您必須限製用戶集群表啟用訪問控製。特別是,您應確保:

  • 用戶沒有權限創建集群。如果他們創建一個集群沒有表的訪問控製,他們可以訪問任何數據從集群。

    禁用集群創建權限
  • 用戶沒有可以連接到允許任何集群不支持訪問控製表。

看到集群訪問控製為更多的信息。

為表創建一個集群啟用訪問控製

表的訪問控製是默認啟用集群共享訪問模式

使用REST API來創建集群,明白了創建集群為表啟用訪問控製的例子

設置數據對象上的特權

看到蜂巢metastore特權和可獲得的對象(遺留)