У меня есть незащищенный кластер (CDH 5.4), и поскольку я хочу предоставить доступ к данным для большего числа пользователей, я хотел бы включить Sentry, пока не Kerberos (который появляется после успешного запуска Sentry). Поскольку некоторым другим людям может понадобиться Импала в данный момент, я решил настроить его в Hive на первом этапе.Apache Sentry: SemanticException Нет действительных привилегий Необходимые привилегии для этого запроса
шаги я принял: 1) Я создал 2 пользователей: улей и TUser
TUser - группа тест улей - группа улей, Zookeeper
тестовая группа
indexer.access, about.access, beeswax.access, filebrowser.access, hbase.write, hbase.access, help.access, impala.access, jobbrowser.access,
jobsub.access, metastore.write, metastore.access, oozie.dashboard_jobs_access, oozie.access, pig.access, proxy.access, rdbms.access,
search.access, security.impersonate, security.access, spark.access, sqoop.access, useradmin.access_view:useradmin:edit_user, useradmin.access, zookeeper.access
группа улей
beeswax.access
группа hive h а роль администратора (первый с разблокированным замком):
SERVER
server=server1 action=ALL
SERVER
server=server1 action=ALL
тестовая группа имеет роль Neco
SERVER
server=server1 action=ALL
URI
server=server1 hdfs://...:8020/user/hive/warehouse action=ALL
DATABASE
server=server1 db=default action=ALL
Кроме того, улей пользователь находится в оба набора sentry.service.admin.group и сторожевой .service.allow.connect.
2) Я включил часовые - в улье проверил Sentry службы от "нет" до "сторожевого" - в улом Service Advanced Configuration Snippet (предохранительный клапан) для сторожки site.xml вставленной <property> <name>sentry.hive.testing.mode</name><value>true</value></property>
+ перезапущен Sentry
Результат: Пользовательский улей может получить доступ к чему угодно в Улье. Это то, чего я ожидал.
Пользователь TUser ничего не может получить доступ в улье: Error while compiling statement: FAILED: SemanticException No valid privileges Required privileges for this query: Server=server1->Db=*->Table=+->action=insert;Server=server1->Db=*->Table=+->action=select;
Что мне не хватает?
Все в/пользователь/улей/склад имеет владельца и группу улей + 777. –
Кроме того, я попытался добавить tuser в группу hive и добавил его в группы sentry.service.admin.group и sentry.service.allow. connect и sentry.metastore.service.users, но результат тот же. –
Не знаете, как этот файл политики работает для ролей, не связанных с администрированием. Вместо этого мы запускаем некоторые явные команды «GRANT». Вы пытались выполнить некоторые команды аудита * (sthg, например 'SHOW GRANTS' - не помню точный синтаксис, и Sentry в любом случае трахает синтаксис Hive по умолчанию) *, чтобы проверить, какие привилегии у вашей группы, отличной от admin, на самом деле? –