美文网首页
hive权限设计(Sentry)

hive权限设计(Sentry)

作者: CNon | 来源:发表于2021-01-28 09:18 被阅读0次

1 Sentry是什么

1、Apache Sentry是Cloudera公司发布的一个Hadoop开源组件,它提供了细粒度级、基于角色的授权以及多租户的管理模式,

2、Sentry当前可以和Hive/Hcatalog、Apache Solr 和Cloudera Impala集成, 为这些组件提供权限管理服务。

3、基于角色的管理(role-based acess control)通过创建角色,将每个组件的权限授予给此角色,然后在用户(组)中添加此角色,用户便具备此角色访问组件的权限,

4、使用sentry对hive进行权限管理时,这里的组件可以是整个server,也可以是单个db,或者单张table.

2要求

使用beeline连接hive,进行权限管理,Hive Cli不支持Sentry管理。

3配置

3.1 HDFS配置

HDFS访问控制列表开启

检查HDFS权限开启

Sentry开启

3.2 Hive配置

hive Sentry开启 

Hive Impersonation禁用

启用数据库中的存储通知hive Metastore Server Default Group

Set sentry.hive.testing.mode=true

3.3 impala配置

Sentry开启

4 Sentry权限分配模式

备注:权限赋予角色,角色分给用户组,之后该用户组下所有用户都将拥有该权限

5基本用法

将role从角色中剔除

REVOKE ROLE role1 FROM GROUP user1;

删除role

//先查看角色列表

show roles

//删除角色

drop role role2;

角色权限撤销

//先查看角色当前授权信息

show grant role role1;

//将db1的操作权限从role1撤销

revoke all on database db1 from role role1;

授权语句说明:

角色授权和撤销

GRANT ROLE role_name [, role_name] TO GROUP <groupName> [,GROUP <groupName>]

REVOKE ROLE role_name [, role_name] FROM GROUP <groupName> [,GROUP <groupName>]

权限的授予和撤销

GRANT <PRIVILEGE> [, <PRIVILEGE> ] ON <OBJECT> <object_name> TO ROLE <roleName> [,ROLE <roleName>]

REVOKE <PRIVILEGE> [, <PRIVILEGE> ] ON <OBJECT> <object_name> FROM ROLE <roleName> [,ROLE <roleName>]

查看角色/组权限

SHOW ROLES;

SHOW CURRENT ROLES;

SHOW ROLE GRANT GROUP <groupName>;

SHOW GRANT ROLE <roleName>;

SHOW GRANT ROLE <roleName> on OBJECT <objectName>;

#将某个数据库读权限授予给某个role

GRANT SELECT ON DATABASE db_name TO ROLE role_name;

#将test 表的 S1 列的读权限授权给role_name (TABLE也可以不写)

GRANT SELECT(s1) ON TABLE test TO ROLE role_name;

#test表的select 权限给 role_name 角色

GRANT SELECT ON TABLE test TO ROLE role_name;

6实际使用样例

6.1 hive用户授予管理员权限

6.1.1创建管理员角色admin

CREATE ROLE admin;

6.1.2为admin角色授予全部server权限

grant all on server server1 to role admin;(server1为用于 Sentry 授权的服务器名称,默认为server1)

6.1.3为hive用户赋予admin角色

//经过这一步,hive用户已经可以作为管理员用户执行全部数据和权限操作。

GRANT ROLE admin TO GROUP hive;

6.2创建只读权限角色

6.2.1 linux创建bigdata用户

useradd hive

passwd hive

6.2.2 hive创建角色

create role hive_select;

6.2.3分配只读权限给角色

grant select on database tmp to role hive_select;

6.2.4将角色分配给用户组

grant role hive_select to group bigdata;

这样,当使用bigdata用户登录hive时,对于库tmp只有select权限

相关文章

网友评论

      本文标题:hive权限设计(Sentry)

      本文链接:https://www.haomeiwen.com/subject/lahttltx.html