Sentry管理Hive目录acl -setacl不生效
CDH在启动Sentry后/user/hive/warehouse这个目录 hdfs手动setacl会不生效
首先确保hdfs参数dfs.namenode.acls.enabled=true;还有另一个acl
hive这边确认参数:
ps: 报错:FAILED: InvalidConfigurationExceptionhive.server2.authentication can’t be none in non-testing mode
Hive服务—>配置---->范围—>Hive(服务范围)—>类别—>主要---->高级–>sentry-site.xml的hive服务高级配置代码段,如图:[sentry.hive.testing.mode]
首先我们先找一个目录测试下
hdfs dfs -getfacl /mgtest
[hdfs@cdh01 ~]$ hdfs dfs -setfacl -R -m group:hive:rwx /mgtest
[hdfs@cdh01 ~]$ hdfs dfs -getfacl /mgtest
接下来我们测试
测试目录:/user/hive/warehouse/mgtest.db
hdfs dfs -setfacl -R -m group:mgtest02:rwx /user/hive/warehouse/mgtest.db
hdfs dfs -getfacl /user/hive/warehouse/mgtest.db
可以看出来 我们set的并没有生效。
解决方法:
进入beeline中
首先我们创建一个
CREATE ROLE mgtest01;
授予其对mgtest01库的管理权限
grant all on database mgtest to role mgtest01 with grant option;
查看mgtest01角色的权限列表
show grant role mgtest01;
GRANT ROLE mgtest01 TO GROUP mgtest03;
查看hdfs权限
hdfs dfs -getfacl /user/hive/warehouse/mgtest.db
再来一次试试
GRANT ROLE mgtest01 TO GROUP mgtest04;
查看权限
hdfs dfs -getfacl /user/hive/warehouse/mgtest.db
ps:
查看所有角色:show roles;
查看当前角色:show current roles;
查看当前用户:select current_user();
Ps: admin授权操作
CREATE ROLE admin;
grant all on server server1 to role admin;
GRANT ROLE admin TO GROUP hive;