hive權限配置


基於CDH5.x的Hive權限配置

1、打開權限控制,默認是沒有限制的

set hive.security.authorization.enabled=true;

2、配置默認權限

1 hive.security.authorization.createtable.owner.grants = ALL  
2 hive.security.authorization.createtable.role.grants = admin_role:ALL  
3 hive.security.authorization.createtable.user.grants = user1,user2:select;user3:create  

在Cloudera Manager中配置

hive-site.xml 的 Hive 客戶端高級配置代碼段(安全閥)
hive-site.xml 的 HiveServer2 高級配置代碼段(安全閥)

<property>  
    <name>hive.security.authorization.enabled</name>  
    <value>true</value>  
</property>  
<property>    
    <name>hive.security.authorization.createtable.owner.grants</name>    
    <value>ALL</value>  
</property>  
<property>    
    <name>hive.security.authorization.task.factory</name>    
    <value>org.apache.hadoop.hive.ql.parse.authorization.HiveAuthorizationTaskFactoryImpl</value>  
</property> 

 

3、創建角色

CREATE ROLE test_role;

 

分配用戶到角色

GRANT ROLE test_role TO USER mllib;   

 

如出現FAILED: SemanticException The current builtin authorization in Hive is incomplete and disabled.這個異常。

解決方案:

配置

 

set hive.security.authorization.task.factory = org.apache.hadoop.hive.ql.parse.authorization.HiveAuthorizationTaskFactoryImpl;  

 

4、分配權限

基於角色:

 

GRANT CREATE ON DATABASE default TO group test_role;  
GRANT SELECT on table authorization_test to group test_role;  
GRANT DROP on table authorization_test to group test_role;  
GRANT ALL on table authorization_test to group test_role;

 

基於用戶:

GRANT CREATE ON DATABASE default TO user mllib;  
GRANT SELECT on table authorization_test to user mllib;  
GRANT DROP on table authorization_test to user mllib;  
GRANT ALL on table authorization_test to user mllib;  

 

分配創建數據庫的權限

GRANT CREATE  TO user root;   

 

5、查看權限分配

 

SHOW GRANT user mllib ON DATABASE default;     
SHOW GRANT group test_role ON DATABASE default;  

 

6、刪除權限

revoke all on database spark from user mllib;  

 

7、HIVE支持以下權限:
權限名稱 含義
ALL      :  所有權限
ALTER  :  允許修改元數據(modify metadata data of object)---表信息數據
UPDATE  :  允許修改物理數據(modify physical data of object)---實際數據
CREATE  :  允許進行Create操作
DROP  :  允許進行DROP操作
INDEX  :  允許建索引(目前還沒有實現)
LOCK  :  當出現並發的使用允許用戶進行LOCK和UNLOCK操作
SELECT  :  允許用戶進行SELECT操作
SHOW_DATABASE : 允許用戶查看可用的數據庫


8、登錄hive元數據庫,可以發現以下表:
Db_privs:記錄了User/Role在DB上的權限
Tbl_privs:記錄了User/Role在table上的權限
Tbl_col_privs:記錄了User/Role在table column上的權限
Roles:記錄了所有創建的role
Role_map:記錄了User與Role的對應關系


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM