一、修改hive配置文件
vim hive-site.xml
<property>
<name>hive.files.umask.value</name>
<value>0002</value>
</property>
<property>
<name>hive.metastore.authorization.storage.checks</name>
<value>true</value>
</property>
<property>
<name>hive.metastore.execute.setugi</name>
<value>false</value>
</property>
<property>
<name>hive.security.authorization.enabled</name>
<value>true</value>
</property>
<property>
<name>hive.security.authorization.createtable.owner.grants</name>
<value>ALL</value>
</property>
#重启hive
二、设置权限(只能根据系统用户来设置)
#进入hive命令行界面,查看系统用户
set system:user.name;
#创建权限
grant create on database test to user work;
#查看权限
show grant user work on database default;
#权限列表
all 赋予所有的权限
alter 有修改表结构的权限
create 有创建表的权限
drop 有删除表或表中分区的权限
index 创建表索引的权限
lock 开启并发后,锁定和解锁定表的权限
select 查询表或者分区中数据的权限
show_database 查看所有数据库的权限
update 向表或者分区中插入或加载数据的权限
#删除权限
revoke all on database default from user work;
revoke create on database default from user work;
三、设置管理员权限(剥夺其他用户的授权)
1、修改配置文件
<property>
<name>hive.users.in.admin.role</name>
<value>work</value>
</property>
#重启hive
#设置权限
grant all on database default to role admin;
#查看权限
show grant role admin on database default;
#删除权限
revoke all on database default from role admin;
2、设置其它用户不能授权
<property>
<name>hive.semantic.analyzer.hook</name>
<value>com.hive.HiveAdmin</value>
</property>
#拷贝jar包到lib下,这个我上传压缩包hive-role.zip到资源中,大家有需要可以有偿下载
cp hadoop-common-2.7.2.jar hive-admin.jar /data/apache-hive-1.2.1-bin/lib
#重启hive生效
四、角色
#创建角色
create role test;
#添加用户至角色
grant role test to user work;
#授权角色
grant select on database default to role test;
#删除角色权限
revoke all on database default from role test;