2016-12-12 2 views
0

Я использую Cloudera 5.4.2 с Sentry и успешно предоставляю доступ к ролям в базах данных. Моя задача теперь состоит в том, чтобы иметь группу, которая может читать только одну таблицу из базы данных, которая имеет много других таблиц. Я не смог предоставить выбор в конкретной таблице, где роль не имеет каких-либо разрешений для базы данных. При взгляде на документацию Cloudera я не вижу примера этого, и формулировка вокруг предоставления доступа к таблице делает звук прямолинейным.Sentry grant выберите только одну таблицу в базе данных

Вот пример того, что я хотел бы запустить, чтобы получить роль 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

Я также столкнулся с таким же вопросом, как в нем предоставляются привилегии для этой таблицы, по умолчанию, схемы вместо «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 должны также принять его.

Смежные вопросы