page contents

大数据hive的权限管理问题

Pack 发布于 2020-02-27 16:14
阅读 1200
收藏 0
分类:数据库

现在我这边需要针对hive做一个权限管控


技术预演:

https://blog.csdn.net/mnasd/article/details/79904061

我按照上述步骤配置了hive-site.xml

hive.users.in.admin.role =hive


我用DG hive用户链接hive后

set hive.users.in.admin.role;

set role admin;

拿到admin角色

show roles ; 等各种元数据查询操作 OK

创建了 用户 ceshi 角色ceshirole 赋权了某库某表权限

但是使用ceshi用户新建链接登录进来之后

仍然能看到所有表 并且该ceshi用户拥有 2个角色 public 和ceshirole


这里我就不贴图了,步骤大致是这样搞了一下午。

请教下 玩过这个东东的大佬

1 为啥我新建的用户 赋予新建的角色 查看该用户拥有的角色 为何都会默认加上public角色?

2 hive 能否通过权限管理 做到不同用户连接 看到的表不同?


后记: 解决了 方式如下:《无法上传文件》


说明:

之前我们平台上10.0.8.145上的hive是 所有linux用户访问都能直接对所有的库中所有的表直接进行操作,该文档为将hive配置为可进行用户访问权限控制说明


参考url

https://blog.csdn.net/mnasd/article/details/79904061

https://blog.csdn.net/volitationlong/article/details/81911539


第一步:


hive-site.xml配置:


hive.security.authorization.enabled true hive.server2.enable.doAs false hive.users.in.admin.role hive hive.security.authorization.manager org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdHiveAuthorizerFactory hive.security.authenticator.manager org.apache.hadoop.hive.ql.security.SessionStateUserAuthenticator

Ambari 平台按上述添加同样配置


启动hiveserver2之后

使用beeline连接测试:

./beeline -u jdbc:hive2://192.168.1.148:10000/default -n hive

Show roles;报错

Show current roles; public

set role admin ;

Show current roles; admin

新建角色

create role ceshi0704;

grant role ceshi0704 to user hive2;

查看某个用户针对某个库拥有的权限

show grant user hive2 on database default; 此时为空 未赋权

./beeline -u jdbc:hive2://192.168.1.148:10000/default -n hive2

Select * from test 报错:

Error: Error while compiling statement: FAILED: HiveAccessControlException Permission denied: Principal [name=hive2, type=USER] does not have following privileges for operation QUERY [[SELECT] on Object [type=TABLE_OR_VIEW, name=shizhan.t_sz]] (state=42000,code=40000)


– 基于某张表针对用户授权

grant update on table test to user hive2;

show grant user hive2 on database default; 此时只有一条记录 表示该用户针对该库该表拥有的权限

Select * from test ;报错

grant select on table test to user hive2;

show grant user hive2 on database default; 2条记录

Select * from test limit 1 ; 不报错 有记录出现


至此:

权限控制完成


且所有的权限控制的操作的权限数据都会存储在hive配置的关系型元数据库中

471
Pack
Pack

https://www.cnblogs.com/yejibigdata/p/6394719.html

请先 登录 后评论