0

我正在测试哨兵以限制角色的列访问权限以访问 mapr 集群上 hive 表中的 ssn 列。我无法撤销对该特定列的访问权限。下面的错误消息抱怨 manager_role 不存在。我验证了我的策略文件经理角色确实存在。如果我遗漏了什么,请告知。

beeline> !connect jdbc:hive2://10.20.30.195:10000 mapr mapr
Connecting to jdbc:hive2://10.20.30.195:10000
Connected to: Apache Hive (version 2.1.1-mapr-1710)
Driver: Hive JDBC (version 2.1.1-mapr-1710)
18/01/28 13:41:31 [main]: WARN jdbc.HiveConnection: Request to set 
autoCommit to false; Hive does not support autoCommit=false.
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://10.20.30.195:10000> REVOKE SELECT(ssn) ON TABLE 
db3.employee FROM ROLE managers_role;
Error: Error while processing statement: FAILED: Execution Error, 
return code 1 from 
org.apache.hadoop.hive.ql.exec.SentryFilterDDLTask. Error when 
sentryClient grant/revoke privilege:Privilege: [ 
server=psnode195.ps.lab,db=db3,table=employee,URI=,action=SELECT] 
doesn't exist.. Server Stacktrace: 
org.apache.sentry.provider.db.SentryNoSuchObjectException: Role: 
managers_role doesn't exist
existatorg.apache.sentry.provider.db.service.persistent.SentryStore.alterSentryRoleRevokePrivilegeCore(SentryStore.java:541)
at org.apache.sentry.provider.db.service.persistent.SentryStore.alterSentryRoleRevokePrivileges(SentryStore.java:519)
at org.apache.sentry.provider.db.service.thrift.SentryPolicyStoreProcessor.alter_sentry_role_revoke_privilege(SentryPolicyStoreProcessor.java:345)
at org.apache.sentry.provider.db.service.thrift.SentryPolicyService$Processor$alter_sentry_role_revoke_privilege.getResult(SentryPolicyService.java:1073)
at org.apache.sentry.provider.db.service.thrift.SentryPolicyService$Processor$alter_sentry_role_revoke_privilege.getResult(SentryPolicyService.java:1058)
at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
at org.apache.sentry.provider.db.service.thrift.SentryProcessorWrapper.process(SentryProcessorWrapper.java:35)
at org.apache.thrift.TMultiplexedProcessor.process(TMultiplexedProcessor.java:123)
at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:285)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748) (state=08S01,code=1)
4

0 回答 0