我正在使用Cloudera 5.4.2和Sentry,并成功授予对数据库角色的访问权限。我现在面临的挑战是拥有一个只能从具有许多其他表的数据库中读取一个表的组。我无法在角色对数据库没有任何权限的特定表上授予select。在查看Cloudera文档时,我没有看到这样的示例,并且关于授予表访问权限的措辞听起来很直接。
以下是我希望运行以获取对test
表的private_table
访问权限而无法访问数据库testdb
中任何其他表的内容的示例。
CREATE ROLE test;
GRANT ROLE test to group `test-group`;
GRANT SELECT ON TABLE testdb.private_table TO ROLE test;
答案 0 :(得分:0)
我也面临同样的问题,因为它在默认架构中授予了该表的权限,而不是" testdb"架构,每次运行以下命令时:
GRANT SELECT ON TABLE testdb.test_table TO ROLE test;
我找到了一种方法来解决这个问题:
USE testdb;
GRANT SELECT ON TABLE test_table TO ROLE test;
但是,由于所有Hive / Impala查询都采用DB.TBL
架构,GRANT
也应接受它。