文档章节

hive集成sentry的sql使用语法

PeanutLike
 PeanutLike
发布于 2017/06/30 13:10
字数 1130
阅读 48
收藏 0

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);

© 著作权归作者所有

共有 人打赏支持
PeanutLike
粉丝 42
博文 22
码字总数 34274
作品 0
徐汇
技术主管
私信 提问
Apache Sentry 1.4.0-incubating 发布

Apache Sentry 是一个加强的细粒度的基于角色的授权系统,针对存储在 Hadoop 集群中的数据和元数据。 Apache Sentry 1.4.0-incubating 发布,此版本现已提供下载,更多内容请看发行说明。 **...

oschina
2014/08/20
1K
0
Apache Sentry 1.5.0 发布

Apache Sentry 是一个加强的细粒度的基于角色的授权系统,针对存储在 Hadoop 集群中的数据和元数据。 Apache Sentry 1.5.0 发布,此版本更新内容如下: 新特性 [SENTRY-74] - Add column-lev...

oschina
2015/04/16
1K
0
Hadoop Sentry 学习

什么是Sentry? Sentry 是Cloudera 公司发布的一个Hadoop开源组件,它提供细粒度基于角色的安全控制 Sentry下的数据访问和授权 通过引进Sentry,Hadoop目前可在以下方面满足企业和政府用户的...

幽芒
2014/08/06
0
0
Apache Sentry 第一弹:Server启动、连接Hue、分组详解

前言: Sentry是Hadoop安全方面的一个开源组件,目前还在孵化中,地址:https://sentry.incubator.apache.org。 原属于Cloudera开发,后来贡献给了Apache。关于它的强大直接摘录一段,全文请...

王二铁
2015/08/21
0
0
Apache Sentry 1.2.0 发布,Hadoop 数据授权控制

Apache Sentry 是一个加强的细粒度的基于角色的授权系统,针对存储在 Hadoop 集群中的数据和元数据。 Apache Sentry 1.2.0 改进内容包括: ** Bug * [SENTRY-15] - log4j.properties file u...

oschina
2013/09/26
3K
1

没有更多内容

加载失败,请刷新页面

加载更多

月入3万之一个程序员的转行坎坷历程

陈年往事 “我月入3万,怎么会少少了你一个鸡蛋啊?” 这是2017年9月左右的一个新闻,一位煎饼摊大妈因和顾客争执时脱口而出这样一句话而走红。当时还上了各大新闻的头条。 互联网兴起今天,...

苏南-首席填坑官
12分钟前
0
1
OSChina 周一乱弹 —— 眼看着这颗陨石砸了下来

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子:分享Nachtblut的单曲《Antik》 《Antik》- Nachtblut 手机党少年们想听歌,请使劲儿戳(这里) @mr_chip :上海的初雪之后有点冷 ...

小小编辑
37分钟前
93
6
Confluence 6 修改导航显示选项

选择 子页面(Child pages)来在边栏中查看当前页面的子页面。 选择 页面树(Page tree)来查看整个空间的页面树,扩展当前的页面。 你也可以选择是否完全隐藏导航显示选项或者添加你希望可见...

honeymose
今天
2
0
Ubuntu18.04 安装MySQL

1.安装MySQL sudo apt-get install mysql-server 2.配置MySQL sudo mysql_secure_installation 3.设置MySQL非root用户 设置原因:配置过程为系统root权限,在构建MySQL连接时出现错误:ERROR...

AI_SKI
今天
3
0
3.6 rc脚本(start方法) 3.7 rc脚本(stop和status方法) 3.8 rc脚本(以daemon方式启动)

3.6-3.7 rc脚本(start、stop和status方法) #!/usr/bin/env python# -*- coding: utf-8 -*-# [@Version](https://my.oschina.net/u/931210) : python 2.7# [@Time](https://my.oschina.......

隐匿的蚂蚁
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部