2016-12-12 15 views
0

私はSentryでCloudera 5.4.2を使用しており、データベースのロールへのアクセスを許可しています。私の挑戦は、他の多くのテーブルを持つデータベースから1つのテーブルしか読み込めないグループを持つことです。私は、ロールがデータベースに対する権限を持たない特定のテーブルでselectを許可することができませんでした。 Clouderaのドキュメントを見ると、私はこれの例は見当たらず、テーブルへのアクセスを許可することに関する言い回しは、まっすぐであることは間違いありません。データベースの1つのテーブルのみでセントリンググラントを選択する

ここでは、データベースtestdbの他のテーブルにアクセスすることなく、テーブルprivate_tableへのロールtestのアクセス権を得るために実行したいものの例を示します。私が見つけた

GRANT SELECT ON TABLE testdb.test_table TO ROLE test; 

:私もそれと同じ問題に直面した

CREATE ROLE test; 
GRANT ROLE test to group `test-group`; 
GRANT SELECT ON TABLE testdb.private_table TO ROLE test; 

答えて

0

は、代わりに「TESTDB」スキーマのデフォルトのスキーマに、私は、次のコマンドを実行するたびに、そのテーブルの権限を付与しました

USE testdb; 
GRANT SELECT ON TABLE test_table TO ROLE test; 

すべてのハイブ/インパラクエリがDB.TBLスキーマを取るので、GRANTもそれを受け入れる必要があります。これを行うことにより、この問題を回避する方法。

関連する問題