Hive權限管理(十)


Hive權限管理

1、hive授權模型介紹

(1)Storage Based Authorization in the Metastore Server
基於存儲的授權 - 可以對Metastore中的元數據進行保護,但是沒有提供更加細粒度的訪問控制(例如:列級別、行級別)。
(2)SQL Standards Based Authorization in HiveServer2
基於SQL標准的Hive授權 - 完全兼容SQL的授權模型,推薦使用該模式。
(3)Default Hive Authorization (Legacy Mode)
hive默認授權 - 設計目的僅僅只是為了防止用戶產生誤操作,而不是防止惡意用戶訪問未經授權的數據。

2、基於SQL標准的hiveserver2授權模式

​ (1)完全兼容SQL的授權模型
​ (2)除支持對於用戶的授權認證,還支持角色role的授權認證
​ 1、role可理解為是一組權限的集合,通過role為用戶授權
​ 2、一個用戶可以具有一個或多個角色,默認包含另種角色:public、admin

3、基於SQL標准的hiveserver2授權模式的限制

​ 1、啟用當前認證方式之后,dfs, add, delete, compile, and reset等命令被禁用。
​ 2、通過set命令設置hive configuration的方式被限制某些用戶使用。
​ (可通過修改配置文件hive-site.xml中hive.security.authorization.sqlstd.confwhitelist進行配置)
​ 3、添加、刪除函數以及宏的操作,僅為具有admin的用戶開放。
​ 4、用戶自定義函數(開放支持永久的自定義函數),可通過具有admin角色的用戶創建,其他用戶都可以使用。
​ 5、Transform功能被禁用。

4、詳細配置
<property>
  <name>hive.security.authorization.enabled</name>
  <value>true</value>
</property>
<property>
  <name>hive.server2.enable.doAs</name>
  <value>false</value>
</property>
<property>
  <name>hive.users.in.admin.role</name>
  <value>root</value>
</property>
<property>
  <name>hive.security.authorization.manager</name>  <value>org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdHiveAuthorizerFactory</value>
</property>
<property>
  <name>hive.security.authenticator.manager</name>
  <value>org.apache.hadoop.hive.ql.security.SessionStateUserAuthenticator</value>
</property>
5、Hive權限管理命令
--角色的添加、刪除、查看、設置:
-- 創建角色
CREATE ROLE role_name;  
-- 刪除角色
DROP ROLE role_name; 
-- 設置角色
SET ROLE (role_name|ALL|NONE); 
-- 查看當前具有的角色
SHOW CURRENT ROLES;  
-- 查看所有存在的角色
SHOW ROLES;  
6、Hive權限分配圖
Action Select Insert Update Delete Owership Admin URL Privilege(RWX Permission + Ownership)
ALTER DATABASE Y
ALTER INDEX PROPERTIES Y
ALTER INDEX REBUILD Y
ALTER PARTITION LOCATION Y Y (for new partition location)
ALTER TABLE (all of them except the ones above) Y
ALTER TABLE ADD PARTITION Y Y (for partition location)
ALTER TABLE DROP PARTITION Y
ALTER TABLE LOCATION Y Y (for new location)
ALTER VIEW PROPERTIES Y
ALTER VIEW RENAME Y
ANALYZE TABLE Y Y
CREATE DATABASE Y (if custom location specified)
CREATE FUNCTION Y
CREATE INDEX Y (of table)
CREATE MACRO Y
CREATE TABLE Y (of database) Y (for create external table – the location)
CREATE TABLE AS SELECT Y (of input) Y (of database)
CREATE VIEW Y + G
DELETE Y
DESCRIBE TABLE Y
DROP DATABASE Y
DROP FUNCTION Y
DROP INDEX Y
DROP MACRO Y
DROP TABLE Y
DROP VIEW Y
DROP VIEW PROPERTIES Y
EXPLAIN Y
INSERT Y Y (for OVERWRITE)
LOAD Y (output) Y (output) Y (input location)
MSCK (metastore check) Y
SELECT Y
SHOW COLUMNS Y
SHOW CREATE TABLE Y+G
SHOW PARTITIONS Y
SHOW TABLE PROPERTIES Y
SHOW TABLE STATUS Y
TRUNCATE TABLE Y
UPDATE Y


免責聲明!

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



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