Операции с привилегиями

  • GRANT — Предоставление привилегий

  • REVOKE — Отзыв привилегий

Предоставление привилегий

Привилегии на схемы

GRANT <schema_privileges> ON SCHEMA <schema_name> TO [ROLE] <role_name>;

Предоставляет роли указанные привилегии на указанную схему.

<schema_privileges> — это список привилегий, разделенный запятыми.

Доступные привилегии на схемы:

  • ADMIN — позволяет удалять схему и раздавать права на схему.

  • MONITOR — разрешает доступ к метаинформации о схеме.

  • USAGE — разрешает доступ к объектам в схеме.

  • MODIFY — позволяет изменять свойства схемы.

  • CREATE TABLE — позволяет создавать таблицы в схеме.

  • CREATE VIEW — позволяет создавать представления в схеме.

Ключевое слово ROLE перед именем целевой роли не является обязательным.
Посмотреть пример

Предоставим роли junior_admin привилегии MONITOR и MODIFY на схему main_schema.

GRANT MONITOR, MODIFY
    ON SCHEMA main_schema
    TO ROLE junior_admin;

Привилегии на таблицы и представления

Прямой синтаксис:

GRANT <table_privileges>
    ON (TABLE | VIEW) <table_name>
    TO [ROLE] <role_name>;

Темпоральный синтаксис:

GRANT <table_privileges>
    ON ALL [EXISTING] [[AND] FUTURE] (TABLES | VIEWS | TABLES AND VIEWS)
    IN [SCHEMA]<schema_name>
    TO [ROLE] <role_name>;

Предоставляет роли указанные привилегии на таблицу или представление внутри указанной схемы.

<table_privileges> — это список привилегий, разделенный запятыми.

Доступные привилегии на таблицы и представления:

  • SELECT — позволяет читать данные из таблицы.

  • INSERT — позволяет добавлять новые строки в таблицу.

  • UPDATE — позволяет изменять существующие строки в таблице.

  • DELETE — позволяет удалять строки из таблицы.

  • MODIFY — позволяет изменять структуру таблицы.

  • OWNERSHIP — позволяет изменять владельца таблицы.

Чтобы выдать привилегию на все существующие (или те, которые будут созданы в будущем) объекты внутри схемы, используется темпоральный синтаксис.

Модификатор EXISTING ограничивает предоставление привилегий только существующими объектами.

Модификатор FUTURE ограничивает предоставление привилегий объектами, которые будут созданы в будущем.

Если ни один модификатор не указан, то действие распространяется на все объекты — и уже существующие, и те, которые будут созданы в будущем.

Ключевое слово ROLE перед именем целевой роли не является обязательным.
Посмотреть пример

Предоставим роли junior_admin привилегии SELECT и INSERT на все существующие таблицы и представления внутри схемы main_schema.

GRANT SELECT, INSERT
    ON EXISTING TABLES AND VIEWS
    IN SCHEMA main_schema
    TO ROLE junior_admin;

Привилегии на каталоги

GRANT <catalog_privileges> ON CATALOG TO [ROLE] <role_name>;

Предоставляет роли указанные привилегии на каталог.

<catalog_privileges> — это список привилегий, разделенный запятыми.

Доступные привилегии на каталоги:

  • ADMIN — любые действия с каталогом.

  • CREATE USER — создание пользователей.

  • CREATE WORKER POOL — создание вычислительных пулов.

  • CREATE SCHEMA — создание схем.

Модификатор EXISTING ограничивает предоставление привилегий только существующими объектами.

Модификатор FUTURE ограничивает предоставление привилегий объектами, которые будут созданы в будущем.

Ключевое слово ROLE перед именем целевой роли не является обязательным.

Привилегии на вычислительные пулы

GRANT <worker_pool_privileges> ON WORKER POOL <worker_pool_name> TO [ROLE] <role_name>;

Предоставляет роли указанные привилегии на вычислительный пул.

<worker_pool_privileges> — это список привилегий, разделенный запятыми.

Доступные привилегии на вычислительные пулы:

  • ALL — все возможные действия с вычислительным пулом.

  • ADMIN — изменение вычислительного пула (права на выполнение команды ALTER WORKER POOL).

  • USAGE — использование вычислительного пула (права на выполнение команды USE WORKER POOL).

  • MONITOR — мониторинг вычислительного пула.

Посмотреть пример

Предоставим роли junior_analyst привилегии USAGE и MONITOR на вычислительный пул compute_xl.

GRANT USAGE, MONITOR
    ON WORKER POOL compute_xl
    TO junior_analyst;

Отзыв привилегий

REVOKE <schema_privileges>
    ON SCHEMA <schema_name> FROM ROLE <role_name>;

REVOKE <table_privileges>
    ON (TABLE | VIEW) <table_name> [IN SCHEMA <schema_name>] FROM ROLE <role_name>;

REVOKE <catalog_privileges>
    ON CATALOG FROM ROLE <role_name>;

REVOKE <worker_pool_privileges>
    ON WORKER POOL <worker_pool_name> FROM ROLE <role_name>;

Отзывает указанные привилегии на указанный объект у роли.

<schema_privileges>, <table_privileges>, <catalog_privileges> и <worker_pool_privileges> — это списки привилегий, разделенные запятыми. Конкретные привилегии зависят от целевого объекта.

Модификатор EXISTING ограничивает отзыв привилегий только существующими объектами.

Модификатор FUTURE ограничивает отзыв привилегий объектами, которые будут созданы в будущем.

Посмотреть пример

Отзовем у роли junior_admin привилегии SELECT и INSERT на все существующие таблицы и представления внутри схемы main_schema.

REVOKE SELECT, INSERT
    ON EXISTING TABLES AND VIEWS
    IN SCHEMA main_schema
    FROM ROLE junior_admin;