Hive 基本语法操练(六):Hive 的权限控制

Hive 的权限控制

 Hive从0.10能够经过元数据控制权限。可是Hive的权限控制并非彻底安全的。基本的受权方案的目的是防止用户不当心作了不合适的事情。html

 为了使用Hive的受权机制,有两个参数必须在hive-site.xml中设置:jquery

< 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.createtable.owner.grants< /name> < value>ALL< /value> < description>the privileges automatically granted to the owner whenever a table gets created. An example like "select,drop" will grant select and drop privilege to the owner of the table< /description> < /property>

 

 hive.security.authorization.enabled //参数是开启权限验证,默认为 false。数据库

 hive.security.authorization.createtable.owner.grants //参数是指表的建立者对表拥有全部权限。安全

角色的建立和删除

 Hive 中的角色定义与关系型数据库中角色的定义相似,它是一种机制,给予那些没有适当权限的用户分配必定的权限。oop

 1) 建立角色。学习

语法:hive> create role role_name; 示例:hive> create role role_tes1;

 2) 删除角色。spa

语法:drop role role_name 示例:drop role role_test1;

角色的受权和撤销

 1) 把 role_test1 角色受权给 xiaojiang 用户,命令以下。code

hive> grant role role_test1 to user hive; OK Time taken: 0.18 seconds

 

 2) 查看 xiaojiang 用户被受权的角色,命令以下。xml

hive> show role grant user hive; OK public false 0 role_test1 false 1527110568000 hadoop Time taken: 0.058 seconds, Fetched: 2 row(s)

 

 3) 取消 xiaojiang 用户的 role_test1 角色,命令以下。htm

hive> revoke role role_test1 from user hive; OK Time taken: 0.029 seconds hive> show role grant user hive;  OK public false 0 Time taken: 0.028 seconds, Fetched: 1 row(s)

 

Hive 支持的权限控制。

 1) 把 select 权限受权给 xiaojiang 用户,命令以下。

hive> grant select on database default to user hive; OK Time taken: 0.07 seconds

 

 2) 查看 xiaojiang 被授予那些操做权限,命令以下。

hive> show grant user hive on database default; OK default hive USER SELECT false 1527110740000 hadoop Time taken: 0.042 seconds, Fetched: 1 row(s)

 

 3) 收回 xiaojiang 的 select 权限,操做以下。

hive> revoke select on database default from user hive; OK Time taken: 0.027 seconds

 

 4) 查看 xiaojiang 用户拥有哪些权限,命令以下。

hive> show grant user hive on database default; OK Time taken: 0.039 seconds

 

超级管理权限

 HIVE自己有权限管理功能,须要经过配置开启。

< property> < name>hive.metastore.authorization.storage.checks< /name> < value>true< /value> < /property> < property> < name>hive.metastore.execute.setugi< /name> < value>false< /value> < /property> < property> < name>hive.security.authorization.enabled< /name> < value>true< /value> < /property> < property> < name>hive.security.authorization.createtable.owner.grants< /name> < value>ALL< /value> < /property>

 

 其中hive.security.authorization.createtable.owner.grants设置成ALL表示用户对本身建立的表是有全部权限的(这样是比较合理地)。

 开启权限控制有Hive的权限功能还有一个须要完善的地方,那就是“超级管理员”。 Hive中没有超级管理员,任何用户均可以进行Grant/Revoke操做,为了完善“超级管理员”,必须添加hive.semantic.analyzer.hook配置,并实现本身的权限控制类。

 

以上就是博主为你们介绍的这一板块的主要内容,这都是博主本身的学习过程,但愿能给你们带来必定的指导做用,有用的还望你们点个支持,若是对你没用也望包涵,有错误烦请指出。若有期待可关注博主以第一时间获取更新哦,谢谢! 

相关文章
相关标签/搜索