Операции с привилегиями
Предоставление привилегий
Привилегии на схемы
GRANT <schema_privileges> ON SCHEMA <schema_name> TO [ROLE] <role_name>;
Предоставляет роли указанные привилегии на указанную схему.
<schema_privileges>
— это список привилегий, разделенный запятыми.
Доступные привилегии на схемы:
-
ADMIN
— позволяет удалять схему и раздавать права на схему. -
MONITOR
— разрешает доступ к метаинформации о схеме. -
USAGE
— разрешает доступ к объектам в схеме. -
MODIFY
— позволяет изменять свойства схемы. -
CREATE TABLE
— позволяет создавать таблицы в схеме. -
CREATE VIEW
— позволяет создавать представления в схеме.
Ключевое слово ROLE перед именем целевой роли не является обязательным.
|
Пример:
GRANT MONITOR, MODIFY
ON SCHEMA main_schema
TO ROLE junior_admin;
Предоставляет роли junior_admin
привилегии MONITOR
и MODIFY
на схему main_schema
.
Привилегии на таблицы и представления
Прямой синтаксис:
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 перед именем целевой роли не является обязательным.
|
Пример:
GRANT SELECT, INSERT
ON EXISTING TABLES AND VIEWS
IN SCHEMA main_schema
TO ROLE junior_admin;
Предоставляет роли junior_admin
привилегии SELECT
и INSERT
на все существующие таблицы и представления внутри схемы main_schema
.
Привилегии на каталоги
GRANT <catalog_privileges> ON CATALOG TO [ROLE] <role_name>;
Предоставляет роли указанные привилегии на каталог.
<catalog_privileges>
— это список привилегий, разделенный запятыми.
Доступные привилегии на каталоги:
-
ADMIN
— любые действия с каталогом. -
CREATE USER
— создание пользователей. -
CREATE WORKER POOL
— создание вычислительных пулов. -
CREATE SCHEMA
— создание схем.
Модификатор EXISTING
ограничивает предоставление привилегий только существующими объектами.
Модификатор FUTURE
ограничивает предоставление привилегий объектами, которые будут созданы в будущем.
Ключевое слово ROLE перед именем целевой роли не является обязательным.
|
Отзыв привилегий
REVOKE <schema_privileges> ON SCHEMA <schema_name> FROM ROLE <role_name>;
REVOKE <table_privileges> ON (TABLE | VIEW) <table_name> FROM ROLE <role_name>;
REVOKE <table_privileges>
ON ALL [EXISTING] [AND FUTURE] (TABLES | VIEWS | TABLES AND VIEWS)
IN [SCHEMA] <schema_name>
FROM ROLE <role_name>;
Отзывает указанные привилегии на указанный объект у роли.
<schema_privileges>
и <table_privileges>
— это списки привилегий, разделенные запятыми. Конкретные привилегии зависят от целевого объекта.
Привилегии для схем:
-
USAGE
— разрешает доступ к объектам в схеме. -
CREATE
— позволяет создавать новые объекты в схеме. -
ALTER
— позволяет изменять свойства схемы. -
DROP
— позволяет удалять схему. -
UNDROP
— позволяет восстановить удаленную схему.
Привилегии для таблиц:
-
SELECT
— позволяет читать данные из таблицы. -
INSERT
— позволяет добавлять новые строки в таблицу. -
UPDATE
— позволяет изменять существующие строки в таблице. -
DELETE
— позволяет удалять строки из таблицы. -
TRUNCATE
— позволяет очистить таблицу. -
ALTER
— позволяет изменить структуру таблицы. -
DROP
— позволяет удалить таблицу. -
UNDROP
— позволяет восстановить удаленную таблицу.
Модификатор EXISTING
ограничивает отзыв привилегий только существующими объектами.
Модификатор FUTURE
ограничивает отзыв привилегий объектами, которые будут созданы в будущем.
Пример:
REVOKE SELECT, INSERT
ON EXISTING TABLES AND VIEWS
IN SCHEMA main_schema
TO ROLE junior_admin;
Отзывает у роли junior_admin
привилегии SELECT
и INSERT
на все существующие таблицы и представления внутри схемы main_schema
.