设置Hive-Hue权限,库,表以及分区字段
元数据
1 2 3 4 5 6 7 8 9 10
| # 一般在metastore库中
# 库权限 db_privs
# 表权限 tbl_privs
# 分区字段权限 part_col_privs
|
开启Hive权限控制
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| # 修改Hive配置项 CDH-Hive-配置-<Hive客户端高级配置代码段(安全阀),HiveServer2高级配置代码段(安全阀)> <property> <name>hive.security.authorization.enabled</name> <value>true</value> </property> <property> <name>hive.security.authorization.createtable.owner.grants</name> <value>ALL</value> </property> <property> <name>hive.security.authorization.task.factory</name> <value>org.apache.hadoop.hive.ql.parse.authorization.HiveAuthorizationTaskFactoryImpl</value> </property> <property> <name>hive.users.in.admin.role</name> <value>hive</value> </property>
|
Hue创建非Admin账户
1 2 3 4 5 6 7 8 9 10 11
| # 用户添加 管理用户-添加组-设置权限-添加用户-设置组
# 权限设置 beeswax.access,rdbms.access,impala.access,pig.access
# 用户 guest
# 组 guest
|
Hive设置用户角色以及权限
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| # 创建Linux用户 useradd guest passwd guest gpasswd -a guest guest
# 需要使用超级管理员-hive su hive
# 默认角色为public set role admin;
# 查看当前角色 show current roles;
# 查看所有角色 show roles;
# 新建一个角色 create role guest;
# 将角色赋给Linux用户 grant role guest to user guest;
# 赋予用户查询default库的权限 grant select on database default to user guest;
# 赋予角色查询default库的权限 # 按理来说拥有这个角色的用户都会获取到权限才对 # 但是没有反应 grant select on database default to role guest;
# 收回权限 revoke select on database default from role guest;
# 查看权限 show grant user guest; show grant user guest on database default; show grant user guest on table default.test;
|
注意
在使用权限控制后,如果发现权限设置无效,可能是需要指定角色导致,默认角色是public
并且,对用户或角色赋予数据库的权限,并没有用,只能设置表权限才能生效