22.4. Назначение и отзыв прав (metastore.mgrant, metastore.mrevoke) #

Требуемые права:

  • Для хранимой процедуры metastore.mgrant: право GRANT на прокси-таблицу.

  • Для хранимой процедуры metastore.mrevoke: право REVOKE на прокси-таблицу.

Вы можете предоставлять и отзывать права на объекты pgpro_metastore с помощью следующих команд:

  SELECT metastore.mgrant(право, тип_объекта, имя_объекта, роль, with_grant_option true или false);
  SELECT metastore.mrevoke(право, тип_объекта, имя_объекта, роль, grant_option_only true или false);

Где:

  • право: право, которое назначается или отзывается.

    Возможные значения:

    • ALL

    • INSERT

    • SELECT

  • тип_объекта: тип объекта pgpro_metastore, на который предоставляется или отзывается право.

    Возможные значения:

    • TABLE для аналитических таблиц.

    • FOLDER для общих каталогов.

  • имя_объекта: имя объекта pgpro_metastore, на который предоставляется и отзывается право.

    Имена аналитических таблиц содержатся в столбце table_name таблицы метаданных pga_table. Имена общих каталогов содержатся в столбце folder_name таблицы метаданных pga_folder.

  • роль: роль, которой предоставляется или у которой отзывается право.

  • (Для команды metastore.mgrant) with_grant_option: указывает, может ли роль предоставлять право другим ролям.

  • (Для команды metastore.mrevoke) grant_option_only: указывает, отзывается ли только возможность предоставлять право другим ролям, при этом само право остаётся.

Пример 22.5.

  • Предоставить роли user1 право INSERT на аналитическую таблицу hits:

      SELECT metastore.mgrant('INSERT','TABLE','hits','user1');
  • Отозвать у роли user1 право INSERT на аналитическую таблицу hits:

      SELECT metastore.mrevoke('INSERT','TABLE','hits','user1');

Альтернативный способ — вы можете предоставлять или отзывать права на прокси-таблицы объектов pgpro_metastore напрямую с помощью следующих запросов:

  GRANT право ON metastore.имя_прокси-таблицы TO роль [WITH GRANT OPTION];
  REVOKE [GRANT OPTION FOR] право ON metastore.имя_прокси-таблицы FROM роль;

Где:

  • (Для команды REVOKE) GRANT OPTION FOR: указывает, что отзывается только возможность предоставлять право другим ролям, при этом само право остаётся.

  • право: право, которое назначается или отзывается.

    Возможные значения:

    • ALL

    • INSERT

    • SELECT

  • имя_прокси-таблицы: имя прокси-таблицы.

    Имена прокси-таблиц содержатся в столбце proxy_table_name таблицы метаданных pga_proxy_table. За подробной информацией о получении имён прокси-таблиц обратитесь к Разделу 22.3.

  • роль: роль, которой предоставляется или у которой отзывается право.

  • (Для команды GRANT) WITH GRANT OPTION: указывает, что роль может предоставлять право другим ролям.

Пример 22.6.

  • Предоставьте роли user1 право INSERT на прокси-таблицу, связанную с аналитической таблицей hits:

      GRANT INSERT ON metastore.t_hits_00001 TO user1;
  • Отозвать у роли user1 право INSERT на прокси-таблицу, связанную с аналитической таблицей hits:

      REVOKE INSERT ON metastore.t_hits_00001 FROM user1;