我已经一步一步地跟着导游走了。但尝试授予角色权限时出错:
0: jdbc:hive2://localhost:10000/> GRANT ALL ON SERVER server1 TO ROLE admin_role;
Error: Error while compiling statement: FAILED: NullPointerException privilegeObj is null for
TOK_GRANT
TOK_PRIVILEGE_LIST
TOK_PRIVILEGE
TOK_PRIV_ALL
TOK_PRINCIPAL_NAME
TOK_ROLE
admin_role
TOK_PRIV_OBJECT
TOK_SERVER_TYPE
server1 (state=42000,code=40000)
我作为配置单元登录到beeline,密码正确,create role正常,我可以看到角色:
0: jdbc:hive2://localhost:10000/> show roles;
+-------------+--+
| role |
+-------------+--+
| test |
| admin_role |
+-------------+--+
但我无法获得当前角色:
0: jdbc:hive2://localhost:10000/> show current roles;
+-------+--+
| role |
+-------+--+
+-------+--+
2条答案
按热度按时间js4nwp541#
找到原因:
哨兵的hive-exec.jar和Hive有不同的版本。常数,例如:
TOK_PRIV_OBJECT
,在两个jar中有不同的值。真狡猾!
yzxexxkh2#
此查询列出分配给已登录用户组的所有角色:
我猜,在您的例子中,用户hive属于组hive(hdfs中的组)。您可以检查哪些角色被授予组配置单元:
如果您没有看到admin\u角色,可以使用以下语句授予它: