博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hive集成sentry的sql使用语法
阅读量:5831 次
发布时间:2019-06-18

本文共 2525 字,大约阅读时间需要 8 分钟。

Sentry权限控制通过Beeline(Hiveserver2 SQL 命令行接口)输入Grant 和 Revoke语句来配置。语法跟现在的一些主流的关系数据库很相似。需要注意的是:当sentry服务启用后,我们必须使用beeline接口来执行hive查询,Hive Cli并不支持sentry。

CREATE ROLE Statement

CREATE ROLE语句创建一个可以被赋权的角色。权限可以赋给角色,然后再分配给各个用户。一个用户被分配到角色后可以执行该角色的权限。

只有拥有管理员的角色可以create/drop角色。默认情况下,hive、impala和hue用户拥有管理员角色。

CREATE ROLE [role_name];

DROP ROLE Statement

DROP ROLE语句可以用来从数据库中移除一个角色。一旦移除,之前分配给所有用户的该角色将会取消。之前已经执行的语句不会受到影响。但是,因为hive在执行每条查询语句之前会检查用户的权限,处于登录活跃状态的用户会话会受到影响。

DROP ROLE [role_name];

GRANT ROLE Statement

GRANT ROLE语句可以用来给组授予角色。只有sentry的管理员用户才能执行该操作。

GRANT ROLE role_name [, role_name]    TO GROUP (groupName) [,GROUP (groupName)]

REVOKE ROLE Statement

REVOKE ROLE语句可以用来从组移除角色。只有sentry的管理员用户才能执行该操作。

REVOKE ROLE role_name [, role_name]        FROM GROUP (groupName) [,GROUP (groupName)]

GRANT (PRIVILEGE) Statement

授予一个对象的权限给一个角色,该用户必须为sentry的管理员用户。

GRANT        (PRIVILEGE) [, (PRIVILEGE) ]        ON (OBJECT) (object_name)       TO ROLE (roleName) [,ROLE (roleName)]

REVOKE (PRIVILEGE) Statement

因为只有认证的管理员用户可以创建角色,从而只有管理员用户可以取消一个组的权限。

REVOKE        (PRIVILEGE) [, (PRIVILEGE) ]        ON (OBJECT) (object_name)       FROM ROLE (roleName) [,ROLE (roleName)]

GRANT (PRIVILEGE) ... WITH GRANT OPTION

在cdh5.2中,你可以委托给其他角色来授予和解除权限。比如,一个角色被授予了WITH GRANT OPTION的权限可以GRANT/REVOKE同样的权限给其他角色。因此,如果一个角色有一个库的所有权限并且设置了 WITH GRANT OPTION,该角色分配的用户可以对该数据库和其中的表执行GRANT/REVOKE语句。

GRANT    (PRIVILEGE)     ON (OBJECT) (object_name)    TO ROLE (roleName)    WITH GRANT OPTION

只有一个带GRANT选项的特殊权限的角色或者它的父级权限可以从其他角色解除这种权限。一旦下面的语句执行,所有跟其相关的grant权限将会被解除。

REVOKE    (RIVILEGE)    ON (BJECT) (bject_name)    FROM ROLE (roleName)

Hive目前不支持解除之前赋予一个角色 WITH GRANT OPTION 的权限。要想移除WITH GRANT OPTION、解除权限,可以重新去除 WITH GRANT OPTION这个标记来再次附权。

SET ROLE Statement

SET ROLE语句可以给当前会话选择一个角色使之生效。一个用户只能启用分配给他的角色。任何不存在的角色和当前用户不能使用的角色是不能生效的。如果没有使用任何角色,用户将会使用任何一个属于他的角色的权限。

  • 选择一个角色使用:
To enable a specific role:
  • 使用所有的角色:
To enable a specific role:
  • 关闭所有角色
SET ROLE NONE;

SHOW Statement

  • 显示当前用户拥有库、表、列相关权限的数据库:
SHOW DATABASES;
  • 显示当前用户拥有表、列相关权限的表;
SHOW TABLES;
  • 显示当前用户拥有SELECT权限的列:
SHOW COLUMNS (FROM|IN) table_name [(FROM|IN) db_name];
  • 显示当前系统中所有的角色(只有管理员用户可以执行):
SHOW ROLES;
  • 显示当前影响当前会话的角色:
SHOW CURRENT ROLES;
  • 显示指定组的被分配到的所有角色(只有管理员用户和指定组内的用户可以执行)
SHOW ROLE GRANT GROUP (groupName);
  • SHOW语句可以用来显示一个角色被授予的权限或者显示角色的一个特定对象的所有权限。
    显示指定角色的所有被赋予的权限。(只有管理员用户和指定角色分配到的用户可以执行)。下面的语句也会显示任何列级的权限。
SHOW GRANT ROLE (roleName);
  • 显示指定对象的一个角色的所有被赋予的权限(只有管理员用户和指定角色分配到的用户可以执行)。下面的语句也会显示任何列级的权限。
SHOW GRANT ROLE (roleName) on (OBJECT) (objectName);

转载于:https://www.cnblogs.com/bugsbunny/p/7097958.html

你可能感兴趣的文章
jquery 选择器总结
查看>>
Qt设置背景图片
查看>>
【阿里云文档】常用文档整理
查看>>
java中的Volatile关键字
查看>>
前端自定义图标
查看>>
实验二
查看>>
独立开发一个云(PaaS)的核心要素, Go, Go, Go!!!
查看>>
MyBatis使用DEMO及cache的使用心得
查看>>
网站文章如何能自动判定是抄袭?一种算法和实践架构剖析
查看>>
【OpenCV学习】滚动条
查看>>
ofo用科技引领行业进入4.0时代 用户粘性连续8个月远甩摩拜
查看>>
兰州青年志愿者“中西合璧”玩快闪 温暖旅客回家路
查看>>
计划10年建10万廉价屋 新西兰政府:比想象中难
查看>>
甘肃发首版《3D打印职业教育教材》:校企合作育专才
查看>>
李娜入选国际网球名人堂 成亚洲第一人
查看>>
为找好心人抚养孩子 浙江一离婚父亲将幼童丢弃公园
查看>>
晚婚晚育 近20年巴西35岁以上孕妇增加65%
查看>>
读书:为了那个美妙的咔哒声
查看>>
深入探究Immutable.js的实现机制(一)
查看>>
jsp改造之sitemesh注意事项
查看>>