1. 背景
虽然在集群上部署了kerberos认证,但是kerberos只是对用户层面进行认证,凡是认证通过的用户都有全量的访问权限,这很不安全,需要进一步对用户的权限进行控制,Sentry 的作用就是这个。
2. 添加Sentry服务
2.1.进入CM首页-->选择集群-->添加服务
2.2.选择Sentry,点击继续
![](https://i-blog.csdnimg.cn/blog_migrate/845a5091744893fc1d99ef564c07d3ea.png)
2.3.给Sentry分配主机,继续
2.4.给Sentry指定数据库
此处填写最初搭建CDH的时候,给Sentry预留的数据库名称和用户名密码,点击继续
3. 启动Sentry服务
3.1.准备工作
- 使用默认的Hive仓库目录,如果启用了Kerberos,需要切换到hdfs用户
- 将仓库的权限设置为771,所属设置为hive:hive
hdfs dfs -chmod -R 771 /user/hive/warehouse hdfs dfs -chown -R hive:hive /user/hive/warehouse |
- 在CM中禁用HiveServer2的模拟
Hive-->配置 -->HiveServer2--> 主要 -->取消勾选“HiveServer2 启用模拟” |
- 若配置了MR/YARN,要给Hive向MR/YARN提交任务的权限
MR/YARN-->配置-->范围:TaskTracker/NodeManager-->类别:安全-->最小用户ID为0/允许的系统用户:有hive-->重启YARN |
- 关闭Hive CLI用户接触Hive元数据的渠道
Hive-->配置-->搜proxyuser-->添加三个用户 hive、hue、sentry |
3.2.给Hive启用Sentry服务
Hive-->配置-->范围:Hive-->类别:主要-->选择Sentry服务-->搜索到启用数据库中的存储通知,打开 -->重启 |
3.3.把Hive添加的Sentry的管理员组里
Sentry-->配置-->范围:Sentry-->类别:主要-->管理组-->保存 |