如何在CDH 6.3.2 启用Kerberos 中 使用sentry 限制用户读写
标签(空格分隔): 大数据平台构建
- 一: 系统环境介绍
- 二: CDH6.3.2 启用安装sentry
- 三: sentry 使用
- 四:启用sentry测试
一: 系统环境介绍
操作系统
CentOS7.5x64
cdh/cm 版本
cm:6.3.1
cdh:6.3.2
采用root用户操作
前置条件:
1.CDH集群运行正常
2.集群已启用Kerberos且正常使用
##二:CDH6.3.2 启用安装sentry
1.在MySQL中创建sentry数据库
# mysql -uroot -pflyfish225
mysql> create database sentry character set latin1; (这个地方必须是latin1 字符集)
mysql> grant all privileges on sentry.* to 'sentry'@'%' identified by 'sentry_1234' with grant option;
mysql> flush privileges;
三: sentry 使用
3.1 在 hive 中使用sentry
1.配置Hive使用Sentry服务
2.关闭Hive的用户模拟功能
3.2 在impala 中启用sentry
配置Impala使用Sentry
3.3 在hue中启用sentry
3.4 在hdfs中启用sentry
完成以上配置后,回到Cloudera Manager主页,部署客户端配置并重启相关服务。
四:sentry 的测试
4.1创建hive超级用户
使用hive用户登录Kerberos,操作如下
1.使用beeline连接HiveServer2
beeline
!connect jdbc:hive2://localhost:10000/;principal=hive/dev01.lanxintec.cn@LANXIN.COM
create role admin;
grant all on server server1 to role admin;
grant role admin to group hive;
创建普通账号与开发者账号
注意:集群所有节点必须存在用户与用户组,赋权是针对用户组而不是针对用户。
Linux添加两个用户(所有节点都要执行)
useradd read
useradd developer
beeline登录创建账号
create role read;
create role developer;
grant select on server server1 to role read;
grant select on server server1 to role developer;
grant insert on server server1 to role developer;
grant create on server server1 to role developer;
grant role read to group read;
grant role developer to group developer;
创建test表
使用hive用户登录Kerberos,通过beeline登录HiveServer2,创建test表,并插入测试数据
create table test (s1 string, s2 string) row format delimited fields terminated by ',';
insert into test values('a','b'),('1','2');
使用read 账号登录hue 查看 可以 创建 表 报错
使用developer 登录
既可以 查询 也可以 创建表
来源:oschina
链接:https://my.oschina.net/u/4303818/blog/4299716