1 角色管理命令

1.1 创建角色

创建一个新角色,需要 admin 用户执行

CREATE ROLE role_name;
--示例:创建名为bigdata_admin_role的角色
CREATE ROLE bigdata_admin_role;
<!--如果没有执行hive权限配置需要修改hive-site.xml文件,然后重新启动-->
<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> 

1.2 删除角色

删除一个角色,需要 admin 用户执行

DROP ROLE role_name;
--示例:删除名为bigdata_admin_role的角色
DROP ROLE bigdata_admin_role

1.3 显示当前角色

显示用户当前角色列表

SHOW CURRENT ROLES;

1.4 设定角色

如果指定了role_name,则该角色将成为当前角色中的唯一角色
将Role_Name设置为All将刷新当前角色的列表(在新角色被授予用户的情况下),并将其设置为默认的角色列表。
将Role_Name设置为None将从当前用户中删除所有当前角色。

SET ROLE (role_name|ALL|NONE);

1.5 显示角色

列出所有当前存在的角色。
只有admin角色对此有特权。

SHOW ROLES;

2 权限管理

2.1 将角色赋权给其他角色/用户/用户组

即,其他角色/用户/用户组将拥有该角色所拥有的权限

赋权/撤销语法

将一个或多个角色授予其他角色或用户。
如果指定了“WITH ADMIN OPTION”,则用户将获得将该角色授予其他用户/角色的权限。
如果授予语句最终在角色之间创建循环关系,则该命令将失败并出现错误。

  GRANT ROLE role_name [, role_name] ...TO principal_specification [, principal_specification] ...[ WITH ADMIN OPTION ];principal_specification:USER user| GROUP group| ROLE role--示例:将bigdata_admin_role角色的权限给到用户bigdata_adminGRANT ROLE bigdata_admin_role TO USER bigdata_admin;--示例:将bigdata_admin_role角色的权限给到用户组bigdata_admin_gGRANT ROLE bigdata_admin_role TO bigdata_admin_g;

从FROM子句中的用户/角色中撤消角色的成员权限。

 REVOKE [ADMIN OPTION FOR] role_name [, role_name] ...FROM principal_specification [, principal_specification] ... ;principal_specificationUSER user| GROUP group| ROLE role--示例:将bigdata_admin_role角色的权限从用户bigdata_admin中移除GRANT ROLE bigdata_admin_role FROM USER bigdata_admin;--示例:将bigdata_admin_role角色的权限给从用户组bigdata_admin_g中移除GRANT ROLE bigdata_admin_role FROM bigdata_admin_g;

2.2 将数据库/表赋权给角色

对数据库/表或视图赋权,包括 ALL/ALTER/UPDATE/CREATE/DROP/INDEX/LOCK/SELECT/SHOW_DATABASE 权限,也可以通过指定某张表的那些列有哪些权限。

GRANTpriv_type [(column_list)][, priv_type [(column_list)]] ...[ON object_specification]TO principal_specification [, principal_specification] ...[WITH GRANT OPTION]REVOKE [GRANT OPTION FOR]priv_type [(column_list)][, priv_type [(column_list)]] ...[ON object_specification]FROM principal_specification [, principal_specification] ...
REVOKE all on bigdata_db.test from
REVOKE ALL PRIVILEGES, GRANT OPTIONFROM user [, user] ...priv_type:ALL | ALTER | UPDATE | CREATE | DROP| INDEX | LOCK | SELECT | SHOW_DATABASE object_specification:TABLE tbl_name| DATABASE db_nameprincipal_specification:USER user| GROUP group| ROLE role--示例:将数据库bigdata_db的所有权限赋给bigdata_admin_role角色
GRANT ALL ON DATABASE bigdata_db TO ROLE bigdata_admin_role;
--示例:将表bigdata_db.test的select权限赋给bigdata_read_role角色
GRANT SELECT ON TABLE bigdata_db.test TO ROLE bigdata_read_role;
--示例:将表bigdata_db.test的select权限赋从bigdata_read_role角色移除
GRANT SELECT ON TABLE bigdata_db.test FROM ROLE role_read_cl;

如果授予用户对表或视图的WITH GRANT OPTION特权,则该用户还可以赋权/撤消其他用户的特权以及这些对象上的角色。

2.3 显示权限

SHOW GRANT [principal_specification] ON (ALL | [TABLE] table_or_view_name);principal_specification: USER user| ROLE role

2.4 管理对象权限的示例

示例:创建用户bigdata_admin并指定用户组bigdata_admin_g,创建hive角色bigdata_admin_role,创建数据库bigdata_db,指定bigdata_admin_role角色拥有bigdata_db所有权限,并将bigdata_admin_role的权限给到bigdata_admin_g用户组:

  #shell脚本内容:#1.创建一个‘用户组’,bigdata_admin_g,语法:groupadd [用户组名]groupadd bigdata_admin_g#2.创建一个‘用户’,bigdata_admin指定用户组为bigdata_admin_g,语法:useradd -m -g [用户组名] [用户名]useradd -m -g bigdata_admin_g bigdata_admin#3.检查用户组和用户创建情况,语法:id [用户名]id bigdata_admin#返回以下内容表示创建成功uid=1003(bigdata_admin) gid=1003(bigdata_admin_g) groups=1003(bigdata_admin_g)#4.创建Hadoop用户路径,设置路径权限及空间大小hadoop fs -mkdir /user/bigdata_adminhadoop fs -chown bigdata_admin/bigdata_admin_g /user/bigdata_adminhadoop fs -chmod 711 /user/bigdata_adminhadoop fs -setfacl -R -m group:bigdata_admin_g:rwx /user/bigdata_adminhadoop fs -setfacl -R -m default:group:bigdata_admin_g:rwx /user/bigdata_adminhadoop fs -setfacl -R -m default:user::rwx /user/bigdata_adminhadoop fs -setfacl -R -m default::--- /user/bigdata_adminhadoop fs -setfacl -R -m default::--- /user/bigdata_adminhdfs dfsadmin -setSpaceQuota 10g /user/bigdata_admin
  --SQL脚本内容:--1.创建数据库 bigdata_db,以下为SQL语法CREATE DATABASE bigdata_db;--2.创建名为bigdata_admin_role的角色CREATE ROLE bigdata_admin_role;--3.将数据库bigdata_db的所有权限赋给bigdata_admin_role角色  GRANT ALL ON DATABASE bigdata_db TO ROLE bigdata_admin_role;--4.将bigdata_admin_role角色的权限给到bigdata_g,即,bigdata_g组内的用户拥有操作数据库bigdata_db的所有权限GRANT ROLE bigdata_admin_role TO GROUP bigdata_g;--5.将集群路径所有权限赋权给bigdata_admin_role角色GRANT ALL ON URI 'hdfs://nameservice/user/bigdata' TO bigdata_admin_role;

示例:创建用户bigdata_read并指定用户组bigdata_read_g,创建hive角色bigdata_read_role,指定bigdata_read_role角色拥有bigdata_db的select权限,并将bigdata_read_role的权限给到bigdata_admin_g用户组:

  --SQL脚本内容:--1.创建名为bigdata_read_role的角色CREATE ROLE bigdata_read_role;--2.将数据库bigdata_db的所有权限赋给bigdata_read_role角色  GRANT SELECT ON DATABASE bigdata_db TO ROLE bigdata_read_role;--3.将bigdata_read_role角色的权限给到bigdata_g,即,bigdata_g组内的用户拥有操作数据库bigdata_db的所有权限GRANT ROLE bigdata_read_role TO GROUP bigdata_g;

2.5 显示角色授予

principal_name是用户或角色的名称。
列出已授予给定用户或角色的所有角色。

SHOW ROLE GRANT (USER|ROLE|GROUP ) principal_name;

示例:

0: jdbc:hive2://localhost:10000> SHOW ROLE GRANT USER user1;
+---------+---------------+----------------+----------+
|  role   | grant_option  |   grant_time   | grantor  |
+---------+---------------+----------------+----------+
| public  | false         | 0              |          |
| role1   | false         | 1398284083000  | uadmin   |
+---------+---------------+----------------+----------+

2.6 列出所有角色和属于该角色的用户

仅admin角色对此具有特权。

SHOW PRINCIPALS role_name;

示例:

0: jdbc:hive2://localhost:10000> SHOW PRINCIPALS role1;
+-----------------+-----------------+---------------+----------+---------------+----------------+
| principal_name  | principal_type  | grant_option  | grantor  | grantor_type  |   grant_time   |
+-----------------+-----------------+---------------+----------+---------------+----------------+
| role2           | ROLE            | false         | uadmin   | USER          | 1398285926000  |
| role3           | ROLE            | true          | uadmin   | USER          | 1398285946000  |
| user1           | USER            | false         | uadmin   | USER          | 1398285977000  |
+-----------------+-----------------+---------------+----------+---------------+----------------+

找出用户ashutosh对表hivejiratable拥有的特权:

0: jdbc:hive2://localhost:10000> show grant user ashutosh on table hivejiratable;
+-----------+----------------+------------+---------+-----------------+-----------------+------------+---------------+----------------+----------+
| database  |     table      | partition  | column  | principal_name  | principal_type  | privilege  | grant_option  |   grant_time   | grantor  |
+-----------+----------------+------------+---------+-----------------+-----------------+------------+---------------+----------------+----------+
| default   | hivejiratable  |            |         | ashutosh        | USER            | DELETE     | false         | 1398303419000  | thejas   |
| default   | hivejiratable  |            |         | ashutosh        | USER            | SELECT     | false         | 1398303407000  | thejas   |
+-----------+----------------+------------+---------+-----------------+-----------------+------------+---------------+----------------+----------+

找出用户ashutosh对所有对象具有的特权:

0: jdbc:hive2://localhost:10000> show grant user ashutosh on all;
+-----------+-------------------+------------+---------+-----------------+-----------------+------------+---------------+----------------+----------+
| database  |       table       | partition  | column  | principal_name  | principal_type  | privilege  | grant_option  |   grant_time   | grantor  |
+-----------+-------------------+------------+---------+-----------------+-----------------+------------+---------------+----------------+----------+
| default   | hivecontributors  |            |         | ashutosh        | USER            | DELETE     | false         | 1398303576000  | thejas   |
| default   | hivecontributors  |            |         | ashutosh        | USER            | INSERT     | false         | 1398303576000  | thejas   |
| default   | hivecontributors  |            |         | ashutosh        | USER            | SELECT     | false         | 1398303576000  | thejas   |
| default   | hivejiratable     |            |         | ashutosh        | USER            | DELETE     | false         | 1398303419000  | thejas   |
| default   | hivejiratable     |            |         | ashutosh        | USER            | SELECT     | false         | 1398303407000  | thejas   |
+-----------+-------------------+------------+---------+-----------------+-----------------+------------+---------------+----------------+----------+

找出所有用户对表hivejiratable拥有的特权:

0: jdbc:hive2://localhost:10000> show grant on table hivejiratable;
+-----------+----------------+------------+---------+-----------------+-----------------+------------+---------------+----------------+----------+
| database  |     table      | partition  | column  | principal_name  | principal_type  | privilege  | grant_option  |   grant_time   | grantor  |
+-----------+----------------+------------+---------+-----------------+-----------------+------------+---------------+----------------+----------+
| default   | hivejiratable  |            |         | ashutosh        | USER            | DELETE     | false         | 1398303419000  | thejas   |
| default   | hivejiratable  |            |         | ashutosh        | USER            | SELECT     | false         | 1398303407000  | thejas   |
| default   | hivejiratable  |            |         | navis           | USER            | INSERT     | false         | 1398303650000  | thejas   |
| default   | hivejiratable  |            |         | navis           | USER            | SELECT     | false         | 1398303650000  | thejas   |
| default   | hivejiratable  |            |         | public          | ROLE            | SELECT     | false         | 1398303481000  | thejas   |
| default   | hivejiratable  |            |         | thejas          | USER            | DELETE     | true          | 1398303380000  | thejas   |
| default   | hivejiratable  |            |         | thejas          | USER            | INSERT     | true          | 1398303380000  | thejas   |
| default   | hivejiratable  |            |         | thejas          | USER            | SELECT     | true          | 1398303380000  | thejas   |
| default   | hivejiratable  |            |         | thejas          | USER            | UPDATE     | true          | 1398303380000  | thejas   |
+-----------+----------------+------------+---------+-----------------+-----------------+------------+---------------+----------------+----------+

hive创建角色并赋权相关推荐

  1. hive 创建访问用户_hive创建角色并赋权

    1 角色管理命令 1.1 创建角色 创建一个新角色,需要 admin 用户执行 CREATE ROLE role_name; 1.2 删除角色 删除一个角色,需要 admin 用户执行 DROP RO ...

  2. oracle查看角色内容,oracle创建,查看用户和角色,用户角色赋权

    一.创建用户并赋予权限 1.创建用户 create user wangxiangyu identified by wangxiangyu; 2.赋权 grant dba to wangxiangyu; ...

  3. oracle 将包赋权给用户,oracle数据库如何创建用户和角色,并给其赋权?

    一.创建用户并赋予权限 1.创建用户 create user wangxiangyu identified by wangxiangyu; 2.赋权 grant dba to wangxiangyu; ...

  4. LL1分析构造法_数学建模算法--最优赋权法(含代码)

    数学建模算法--最优赋权法(含代码) 作者:郑铿城 本次介绍数学建模和科研写作的方法--最优赋权法最优赋权法经常用于分析评价类问题,从该算法的名称就可以看到,该算法首先要体现"最优" ...

  5. visudo精确用户赋权(sudo)

    原文BLOG:http://iminmin.blog.51cto.com/689308/455992 sudo" 是 Unix/Linux 平台上的一个非常有用的工具,允许为非根用户赋予一些 ...

  6. 《MySQL——关于grant赋权以及flush privileges》

    先上总结图: 对于赋予权限或者收回权限还是创建用户,都会涉及两个操作: 1.磁盘,mysql.user表,用户行所有表示权限的字段的值的修改 2.内存,acl_users找到用户对应的对象,将acce ...

  7. MySQL赋权navicat_mysql 的root 用户无法授权及解决navicat 远程授权提示1044问题

    先看解决方案 #------------mysql root 用户无法赋权问题解决 -------- 1,登录 mysql -u root -p 2,use mysql; 选择mysql数据库 3,执 ...

  8. 组合赋权法之python

    目录 1.简介 2.算法原理 2.1 指标正向化 2.2 数据标准化 2.3 计算主观权重 2.4 计算客观权重 2.5 计算组合权重 2.6 计算的得分 3.实例分析 3.1 读取数据 3.2 指标 ...

  9. 组合赋权法之matlab

    目录 1.简介 2.算法原理 2.1 指标正向化 2.2 数据标准化 2.3 计算主观权重 2.4 计算客观权重 2.5 计算组合权重 2.6 计算的得分 3.实例分析 3.1 读取数据 3.2 指标 ...

最新文章

  1. ubuntu系统下创建软件桌面快捷方式
  2. SpringBoot中使用fastjson将map转换成json
  3. python中循环结构分有,python常见循环结构有哪些
  4. 使用tensorboard可视化tensorflow模型
  5. JAVA基础之变量(数据类型及其转换)
  6. Android四大组件之Activity组件
  7. 富文本编辑器Editor.md入门
  8. Deeping Learning学习与感悟——《深度学习工程师》_5
  9. gitee及github的区别
  10. 计算机房等电位接地规范,一个实例全面讲解机房如何做防雷接地?
  11. Linux基本操作之vi编辑器
  12. 手游渠道分成的那些坑来等你跳
  13. Python·@property属性
  14. python生存曲线_知识分享 | 生存分析: 在 Python 中的实现(下篇)
  15. 如何让你的YOLOV3模型更小更快?
  16. rk3288 ddr 开发指南
  17. Python 判断三位水仙花数
  18. 压缩文件已损坏如何修复
  19. git 提交 全部文件
  20. 金融时报全球五百强企业排名 中石油居榜首

热门文章

  1. 最近做项目所积累的一些小知识(一)
  2. FOC电机ST系列处理器使用的基础知识
  3. 【数学】如何求e的值
  4. 冠词 article
  5. 道阻且长 莫失本心(我的OI之旅
  6. Do not use built-in or reserved HTML elements as compo
  7. 记录Win10正确安装CUDA和cuDNN的过程(记录一些坑)
  8. 关于正手拉前冲弧圈球和加转弧圈球的几点领悟
  9. C语言之__attribute__((visibility(“default“)))等gcc flag讲解(六十二)
  10. python爬虫爬取当当网的商品信息