Hive權限管理:基於存儲授權

2020-11-08 攻橙獅牛哥

Hive的默認權限模式

Hive的默認授權模式支持基於用戶、組和角色的傳統RDBMS風格的授權,並授予他們在資料庫或表上執行操作的權限,詳細描述在hive授權(https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Authorization)和hive廢棄的權限模式。

這種RDBMS類型的授權不太適合Hadoop中的典型用例,因為在實現方面存在以下差異:

  1. 與傳統的RDBMS不同,Hive不能完全控制它下面的所有數據。數據存儲在多個文件中,文件系統具有獨立的授權系統
  2. 與傳統的RDBMS不允許其他程序直接訪問數據不同的是,人們傾向於使用其他應用程式直接讀取或寫入與Hive一起使用的文件或目錄

這就產生了這樣的問題場景:

  1. 您向用戶授予權限,但是用戶不能訪問資料庫或文件系統,因為他們沒有文件系統權限
  2. 您刪除了用戶的權限,但是用戶仍然可以通過文件系統直接訪問數據,因為他們具有文件系統權限

Hive社區意識到可能不存在一個萬能的授權模型,因此它支持可插入的其他授權模型。在HCatalog包中,我們介紹了一個授權接口的實現,該接口使用底層文件系統(通常是存儲後端)的權限作為每個資料庫、表或分區的權限的基礎

在Hive中,當文件系統用於存儲時,有一個對應於資料庫或表的目錄。使用這種授權模型,用戶或組對該目錄的讀/寫權限決定了用戶對資料庫或表的權限。在HBase等其他存儲系統中,對系統中等效實體的授權將使用系統的授權機制來確定Hive中的權限。

例如,alter table操作將在允許操作之前檢查用戶是否對表目錄具有權限,即使它可能不會更改文件系統上的任何內容

用戶需要對存儲系統上對應的實體進行寫訪問,以執行任何類型的操作,從而修改資料庫或表的狀態。用戶需要讀訪問權限才能對資料庫或表執行任何非修改操作

當資料庫或表被具有Unix/ posix權限模型(如HDFS)的文件系統所支持時,您可以為所有者用戶、組和' other '設置讀(r)和寫(w)權限

例如,在http://hadoop.apache.org/docs/rx.x.x/hdfs_permissions_guide.html上給出了HDFS權限的詳細信息

HDFS權限管理1.0.4版本http://hadoop.apache.org/docs/r1.0.4/hdfs_permissions_guide.html

HDFS權限管理1.2.1版本http://hadoop.apache.org/docs/r1.2.1/hdfs_permissions_guide.html

注意:對HDFS ACL(在Apache Hadoop 2.4中引入)的支持在已發布的Hive版本中是不可用的。這意味著,它只檢查傳統rwx樣式的權限,以確定用戶是否可以寫入文件系統。對ACL的支持在Hive trunk Hive -7583中可用,在Hive 0.14中也可用

注意:如果hive.warehouse.subdir.inherit.perms啟用後,將通過以下權限繼承規則設置hive創建的文件和目錄的權限和ACL。

用於確定用戶是否對目錄或文件具有權限的文件系統邏輯將被Hive使用

下表顯示了此授權模型下的Hive操作所需的最小權限:


警告:目前Hive的這種授權模式並不能阻止惡意用戶做壞事

權限未使用的DDL:

管理Hive默認授權模型的權限的DDL語句對基於存儲的模型中的權限沒有任何影響

配置基於存儲系統的授權

基於文件系統的授權模型的實現可以通過一個名為StorageBasedAuthorizationProvider的授權提供程序來實現,該授權提供程序是Hive的一部分。(在0.10.0版本的Hive包中添加了對這個的支持—參見hive-3705和Metastore伺服器中的基於存儲的授權。)

需要將以下條目添加到hive-site.xml以啟用授權

<property> <name>hive.security.authorization.enabled</name> <value>true</value> <description>enable or disable the hive client authorization</description> </property> <property> <name>hive.security.authorization.manager</name> <value>org.apache.hadoop.hive.ql.security.authorization.StorageBasedAuthorizationProvider</value> <description>the hive client authorization manager class name. The user defined authorization class should implement interface org.apache.hadoop.hive.ql.security.authorization.HiveAuthorizationProvider. </description> </property>

相關焦點

  • hive權限管理:Metastore存儲授權
    在Metastore伺服器中基於存儲的授權在Hive 0.10版本中增加了基於存儲授權的metastore server安全特性。這個特性以前在HCatalog中引入過當metastore 服務端安全策略被配置為使用基於存儲的授權時,它使用與不同元數據對象對應的文件夾的文件系統權限作為授權策略的真實來源。
  • hive權限管理:Hive棄用授權模式/遺留模式
    聲明:Hive授權不是完全安全的。基本授權模式的目的主要是防止優秀用戶意外地做壞事,但對防止惡意用戶做壞事沒有承諾。有關安全選項,請參閱Hive授權主頁前提為了使用Hive授權,需要在hive-site.xml中設置以下兩個參數<property> <name>hive.security.authorization.enabled</name> <value>true<
  • 基於Sentry實現數據訪問權限控制
    Sentry初識Sentry是適用於Hadoop生態環境、基於角色的授權管理系統,可以模塊化集成到HDFS、Hive、Impala。它是一個策略引擎,運行定義授權規則,以校驗用戶對數據模型的訪問請求。在某些場景下,管理員可以使用視圖的方式限制對行或列的訪問,能一定程度上減少權限設置的工作量。Role角色是一個權限集合,定義授權規則的基本單位。角色的概念允許將多個授權規則集合到一起,然後再把權限相同的用戶分到一個角色裡,很方便後續權限管理維護。
  • Hive是什麼
    談到大數據,肯定離不開Hadoop和Hive,Hadoop是大數據的基石,因為存儲、調度、計算框架大多都是在Hadoop上。那麼為什麼又離不開hive呢?因為hive的離線計算最穩定,更重要的是現在絕大部分計算引擎都是基於hive的元數據管理。下面談談hive需要掌握哪些知識。Hive是大數據領域離線執行必不可少的引擎。用戶寫sql可以在Hadoop集群上分布式執行。
  • Hive學習筆記,看懂 Hive
    Hive是基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射為一張表,並提供數據存儲位置Hive 是建立在 Hadoop 之上的,所有 Hive 的數據都是存儲在 HDFS 中的。而資料庫則可以將數據保存在塊設備或者本地文件系統中。
  • Apache Ranger - Hive Plugin
    Ranger如果要使用策略對組件進行授權,必須在這些組件上安裝Ranger Plugin。比如為了將授權應用於Hive實體,如DB,Table或Columns,你必須為Hive服務安裝Ranger Plugin。
  • 數據倉庫組件:Hive環境搭建和基礎用法
    本文源碼:GitHub || GitEE一、Hive基礎簡介1、基礎描述Hive是基於Hadoop的一個數據倉庫工具,用來進行數據提取、轉化、加載,是一個可以對Hadoop中的大規模存儲的數據進行查詢和分析存儲的組件,Hive數據倉庫工具能將結構化的數據文件映射為一張資料庫表,並提供SQL查詢功能,能將SQL語句轉變成MapReduce
  • 回顧·基於Impala平臺打造交互查詢系統
    Impala兼容hive存儲,還有一些點如Apache頂級項目、成熟社區、多種數據源格式兼容、高效的查詢性能都是我們考慮特有的選型因素。接下來講一下Impala架構,其兼容多種數據源就是metastore直接對接各種DB,利用catalogd提供元數據服務。可以直接連DB也可以通過catalogd,一般是利用hive裡的metastore獲取數據。
  • 基於業務中臺的多租戶權限管理設計方案
    文章是基於業務中臺多租戶權限管理設計的整體方案,筆者梳理了後臺系統權限管理設計的一般方法、需要解決的問題以及總結了具體的設計方案。一、後臺系統中權限管理設計的一般方法在設計後臺系統(如:CRM、EPR、EHR、電商管理後臺等)時,權限管理是必不可少的功能,絕大部分的後臺系統都是處理企業業務流程的,會涉及到多個部門的協同合作,必然需要對每個能夠使用系統的用戶進行權限管理。
  • 國雙GVP:動態授權、無限繼承且多級管理的行級權限控制是什麼體驗?
    在項目數據包的[地區]欄位下,集團管理員賦予各地區銷售主管行級權限為「[地區]={地區標籤}」,則過濾出相應地區零售數據給地區管理員,那麼地區標籤為「華北」的華北管理員Joanna僅有權管理華北零售數據包,且基於多級管理的限制,Joanna僅有權給華北地區銷售人員共享華北零售數據包。以此類推,即各地區銷售主管僅有權管理和共享被授權數據包中本地區的數據,確保權限安全且高效下發。
  • go語言基於角色訪問的權限管理模型插件
    特徵Casbin的作用:以經典{subject, object, action}形式或您定義的自定義形式實施策略,同時支持允許和拒絕授權。處理訪問控制模型及其策略的存儲。管理角色用戶映射和角色角色映射(RBAC中的角色層次結構)。
  • SpringSecurity+JWT之基於RBAC模型的權限管理系統
    1.什麼是權限管理系統?權限管理是一個幾乎所有後臺系統的都會涉及的一個重要組成部分,可以說是後臺項目的基本功,主要目的是對整個後臺管理系統進行權限的控制,而針對的對象是員工,避免因權限控制缺失或操作不當引發的風險問題,如操作錯誤,數據洩露等問題。
  • Hive的學習,Hive的DDL和DML
    ,理論上它可以存儲2GB的字符數。xiaoxiao song": 19 } "address": { //結構Struct, "street": "hui long guan" , "city": "beijing" }}2)基於上述數據結構
  • 漫談PetaBase-i的基於角色的細粒度授權系統
    數據授權能力弱:數據使用缺乏細粒度授權方式和精細化的權限控制保護機制。方案:基於角色的細粒度授權系統針對上述問題,億信華辰實時大數據平臺PetaBase-i中加入了加強的細粒度的基於角色的授權系統。它使用了粗粒度的、基於Kerberos統一身份認證的安全機制與細粒度級、基於角色的授權以及多租戶的管理模式相結合的多重安全授權。Kerberos是目前Hadoop生態中非常流行且成熟的統一身份認證機制,在Hive、HDFS、YARN等開源組件的權限認證方面有著廣泛的應用。
  • Hive msck源碼解析
    這個源碼是基於apache-hive3.1.2版本 在DDLTask類的execute方法,當MsckDesc對象非空時,說明這個操作是msck操作,那麼就執行msck 進入到msck方法, 首先獲取元數據信息不在metastore和hdfs上的表和分區信息,結果存儲在CheckResult對象中。
  • HIVE的安裝與配置
    (2)hive官網地址:http://hive.apache.org/(3)hive下載地址:http://archive.apache.org/dist/hive/(4)我的hive版本是下載的apache-hive-1.2.1-bin.tar.gz(5)mysql版本:MySQL-5.5.60-1.el6.x86_64.rpm-bundle.tar
  • 搞懂Hadoop、MapReduce、Hive、HBase、YARN及Spark的區別與聯繫
    03那什麼是hive呢hive是基於Hadoop的一個數據倉庫工具,用來進行數據提取、轉化、加載,可以存儲、查詢和分析存儲在數據存儲模型編輯hive中包含以下四類數據模型:表(Table)、外部表(External Table)、分區(Partition)、桶(Bucket)。 (1) hive中的Table,和資料庫中的Table在概念上是類似的。
  • 活動目錄及Azure AD權限管理經驗分享
    而且這些工具缺乏統一的界面來授予或撤銷權限,甚至無法獲得企業中所有資源的所有權限的整體視圖,這使得權限管理和安全性極為複雜。身份和安全權限的三角方法無論您是小型企業,還是用戶遍布全球的大型企業,對於訪問權限的管理都是至關重要的。有效的權限和訪問控制管理可以防止未經授權的訪問和公司敏感數據的洩漏,並且還可以幫助您更好地管理資源,尤其是當資源數量增加時。
  • 什麼是hive?一篇文章講解清楚
    開門見山,什麼是hive?一個 Hadoop 的客戶端。hive能做什麼?hive是基於Hadoop的一個數據倉庫工具用來進行數據提取、轉化、加載,這是一種可以存儲、查詢和分析存儲在Hadoop中的大規模數據的機制。hive數據倉庫工具能將結構化的數據文件映射為一張資料庫表,並提供SQL查詢功能,能將SQL語句轉變成MapReduce任務來執行。
  • VELE基於區塊鏈存儲可擴展的結構化數據管理
    在區塊鏈高速發展的今天,區塊鏈技術本身在存儲方面也存在一些難點,如容量擴展、存儲結構擴展等,而結構化數據管理恰好就解決這些問題。,因而存在數據管理權限集中、安全性弱、存儲成本大等問題,區塊鏈是一種去中心化的分布式帳本技術,具有透明可信、防篡改、可追溯、高可靠性等特點,在信息化系統中發揮著重要的作用,因此,基於區塊鏈存儲擴展的結構化數據管理具有重要的現實意義。