1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Hive权限管理 增加用户 授权

Hive权限管理 增加用户 授权

时间:2021-03-23 11:28:30

相关推荐

Hive权限管理 增加用户 授权

目标:

Hive添加用户,并授予不同的权限

用户TRoot:拥有Gdb1、Gdb2超级权限,由root用户授权用户Auser:由TRoot授权,不能create database/drop database,拥有名为 Gdb1 的 database 所有权限用户Buser:由用户Auser授权,拥有 Gdb1 的读写权限用户Cuser:由用户Buser授权,只能够拥有Gdb1的读权限用户Duser:由TRoot授权,可以同时拥有Gdb1、Gdb2的读写权限用户Euser:由TRoot授权,只能够拥有Gdb1、Gdb2的读权限

参考文章

hive增加普通用户,只赋予select权限,无create,drop等权限_1350368559_51CTO博客

大数据Hive系列之Hive用户权限管理_飞翔的博客-CSDN博客_hive查看用户权限

Hive之权限控制 - 清酒浪人 - 博客园

注意:

Hive用户登录,防君子不防小人,建议从入口端配置限制账号登录,本博客不示范设置账号密码教程

Hive账号密码设置登录,参考:

Hive设置连接用户名和密码_奔跑的蜗牛的博客-CSDN博客_hive用户名和密码

准备工作:

需要在各个节点添加用户,原因:

各节点nodemanager 需要相同的执行用户

Ansible 默认通过 SSH 协议管理机器,所以 Ansible 不需要安装客户端程序在服务器上。您只需要将 Ansible 安装在一台服务器,在 Ansible 安装完后,您就可以去管理控制其它服务器。不需要为它配置数据库,Ansible 不会以 daemons 方式来启动或保持运行状态。Ansible 可以实现以下目标:

自动化部署应用自动化管理配置自动化的持续交付自动化的(AWS)云服务管理。

执行命令

yum -y installansible 来安装ansible 插件

配置ansible

[root@node01 ~]# vi /etc/ansible/hosts[hadoop_root]node01 ansible_ssh_user=root ansible_ssh_pass=123456node02 ansible_ssh_user=root ansible_ssh_pass=123456node03 ansible_ssh_user=root ansible_ssh_pass=123456

建立用户并授权

执行命令

ansible hadoop_root -m shell -a'useradd -s /sbin/nologin TRoot'

ansible hadoop_root -m shell -a'useradd -s /sbin/nologin Auser'

ansible hadoop_root -m shell -a'useradd -s /sbin/nologin Buser'

ansible hadoop_root -m shell -a'useradd -s /sbin/nologin Cuser'

ansible hadoop_root -m shell -a'useradd -s /sbin/nologin Duser'

ansible hadoop_root -m shell -a'useradd -s /sbin/nologin Euser'

注意:

gate节点不需要 /sbin/nologin否则无法切换到相应的用户

注意,创建角色和用户授权之前,需要进行如下步骤

遇到问题,如下图

> show roles;

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Current user : root is not allowed to list roles. User has to belong to ADMIN role and have it as current role, for this action.

hive (default)> create role superrole;

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Current user : root is not allowed to add roles. User has to belong to ADMIN role and have it as current role, for this action.

hive (default)>

解决办法:

1、在hive-site.xml配置:

<property>

<name>hive.users.in.admin.role</name>

<value>root</value>

</property>

value值为超级用户

2、在hive端设置

让用户进入admin角色权限

set hive.users.in.admin.role;

set role admin;

1、给TRoot授权超级权限

grant all on database Gdb1 to user TRoot with grant option;

grant all on database Gdb2to user TRoot with grant option;

2、给Auser授权Gdb1权限

TRoot用户登录执行:

grant all on database Gdb1 to user Auserwith grant option;

3、给Buser授权

Auser用户登录执行:

grant select on database Gdb1 to user Buser;

grant insert on database Gdb1 to user Buser;

grant update on database Gdb1 to user Buser;

grant delete on database Gdb1 to user Buser;

4、给Cuser授权

Buser用户登录执行:

grant select on database Gdb1 to user Cuser;

5、给Duser授权

TRoot用户权限登录执行

grant select on database Gdb2 to user Duser;

grant insert on database Gdb2 to user Duser;

grant update on database Gdb2 to user Duser;

grant delete on database Gdb2 to user Duser;

6、给Euser授权

TRoot用户登录执行

grant select on database Gdb1 to user Duser;

grant select on database Gdb2 to user Duser;

验证

在对应用户执行以下命令即可验证

-- 查看指定用户在所有库下面的权限

show grant user TRoot;

-- 查看指定用户在某个库的权限

show grant user TRoot on database Gdb1;

Cuser不能够访问Gdb2的表

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。