0

我将 Cloudera 5.4.2 与 Sentry 一起使用,并成功授予对数据库角色的访问权限。我现在的挑战是让一个组只能从具有许多其他表的数据库中读取一个表。我无法在角色对数据库没有任何权限的特定表上授予选择权限。在查看 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;
4

1 回答 1

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因此也应该接受它。

于 2017-02-15T21:47:24.740 回答