一.Storage Based Authorization in the Metastore Server
>基於存儲的授權,可以對Metastore中的元數據進行保護,但是沒有提供更加細粒度的訪問控制【例如:列級別、行級別等】。
>啟用當前認證方式后,dfs,add,delete,compile,reset等命令被禁用。
>通過set命令設置hive configuration的方式被限制為只能某些用戶使用。
>添加,刪除函數以及宏的操作僅為具有admin角色的用戶開發。
>用戶自定義函數【開放支持永久的自定義函數】,可通過具有admin角色的用戶創建,其他用戶都可以使用。
二.SQL Standards Based Authorization in HiveServer2
>基於SQL標准的Hive授權,完全兼容SQL的授權模型,推薦使用該模式。
>除支持對於用戶的授權認證,還支持角色role的授權認證。
>role可理解為一組權限的集合,通過role為用戶授權。
>一個用戶可以具有一個或多個角色。
>Hive默認包含兩種角色:public,admin。
三.在hive服務端修改配置文件hive-site.xml添加以下配置開啟權限認證
<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>
四.Default Hive Authorization【Legacy Mode】
>Hive默認授權,設計目的僅僅是為了防止用戶產生誤操作,而不是防止惡意用戶訪問未經授權的數據。
五.角色操作
>創建角色
CREATE ROLE role_name;
>刪除角色
DROP ROLE role_name;
>設置角色
SET ROLE role_name (ALL|NONE);
>查看當前用戶具有的角色
SHOW CURRENT ROLES;
>查看所有存在的角色
SHOW ROLES;
六.權限管理
七.權限分布表