hive创建角色并赋权
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创建角色并赋权相关推荐
- hive 创建访问用户_hive创建角色并赋权
1 角色管理命令 1.1 创建角色 创建一个新角色,需要 admin 用户执行 CREATE ROLE role_name; 1.2 删除角色 删除一个角色,需要 admin 用户执行 DROP RO ...
- oracle查看角色内容,oracle创建,查看用户和角色,用户角色赋权
一.创建用户并赋予权限 1.创建用户 create user wangxiangyu identified by wangxiangyu; 2.赋权 grant dba to wangxiangyu; ...
- oracle 将包赋权给用户,oracle数据库如何创建用户和角色,并给其赋权?
一.创建用户并赋予权限 1.创建用户 create user wangxiangyu identified by wangxiangyu; 2.赋权 grant dba to wangxiangyu; ...
- LL1分析构造法_数学建模算法--最优赋权法(含代码)
数学建模算法--最优赋权法(含代码) 作者:郑铿城 本次介绍数学建模和科研写作的方法--最优赋权法最优赋权法经常用于分析评价类问题,从该算法的名称就可以看到,该算法首先要体现"最优" ...
- visudo精确用户赋权(sudo)
原文BLOG:http://iminmin.blog.51cto.com/689308/455992 sudo" 是 Unix/Linux 平台上的一个非常有用的工具,允许为非根用户赋予一些 ...
- 《MySQL——关于grant赋权以及flush privileges》
先上总结图: 对于赋予权限或者收回权限还是创建用户,都会涉及两个操作: 1.磁盘,mysql.user表,用户行所有表示权限的字段的值的修改 2.内存,acl_users找到用户对应的对象,将acce ...
- MySQL赋权navicat_mysql 的root 用户无法授权及解决navicat 远程授权提示1044问题
先看解决方案 #------------mysql root 用户无法赋权问题解决 -------- 1,登录 mysql -u root -p 2,use mysql; 选择mysql数据库 3,执 ...
- 组合赋权法之python
目录 1.简介 2.算法原理 2.1 指标正向化 2.2 数据标准化 2.3 计算主观权重 2.4 计算客观权重 2.5 计算组合权重 2.6 计算的得分 3.实例分析 3.1 读取数据 3.2 指标 ...
- 组合赋权法之matlab
目录 1.简介 2.算法原理 2.1 指标正向化 2.2 数据标准化 2.3 计算主观权重 2.4 计算客观权重 2.5 计算组合权重 2.6 计算的得分 3.实例分析 3.1 读取数据 3.2 指标 ...
最新文章
- ubuntu系统下创建软件桌面快捷方式
- SpringBoot中使用fastjson将map转换成json
- python中循环结构分有,python常见循环结构有哪些
- 使用tensorboard可视化tensorflow模型
- JAVA基础之变量(数据类型及其转换)
- Android四大组件之Activity组件
- 富文本编辑器Editor.md入门
- Deeping Learning学习与感悟——《深度学习工程师》_5
- gitee及github的区别
- 计算机房等电位接地规范,一个实例全面讲解机房如何做防雷接地?
- Linux基本操作之vi编辑器
- 手游渠道分成的那些坑来等你跳
- Python·@property属性
- python生存曲线_知识分享 | 生存分析: 在 Python 中的实现(下篇)
- 如何让你的YOLOV3模型更小更快?
- rk3288 ddr 开发指南
- Python 判断三位水仙花数
- 压缩文件已损坏如何修复
- git 提交 全部文件
- 金融时报全球五百强企业排名 中石油居榜首
热门文章
- 最近做项目所积累的一些小知识(一)
- FOC电机ST系列处理器使用的基础知识
- 【数学】如何求e的值
- 冠词 article
- 道阻且长 莫失本心(我的OI之旅
- Do not use built-in or reserved HTML elements as compo
- 记录Win10正确安装CUDA和cuDNN的过程(记录一些坑)
- 关于正手拉前冲弧圈球和加转弧圈球的几点领悟
- C语言之__attribute__((visibility(“default“)))等gcc flag讲解(六十二)
- python爬虫爬取当当网的商品信息