REVOKE
Используйте REVOKE для удаления конкретных привилегий или ролей у пользователя или роли. Список привилегий, поддерживаемых Selena, см. в разделе Привилегии, поддерживаемые Selena.
- Обычные пользователи могут отзывать у других пользователей и ролей только свои привилегии, имеющие ключевое слово
WITH GRANT OPTION. Для получения информации оWITH GRANT OPTIONсм. GRANT. - Только пользователи с ролью
user_adminимеют привилегию отзыва привилегий у других пользователей.
Синтаксис
Отзыв привилегий
Привилегии, которые могут быть отозваны, зависят от объекта. В следующей части описывается синтаксис в зависимости от объектов.
System
REVOKE
{ CREATE RESOURCE GROUP | CREATE RESOURCE | CREATE EXTERNAL CATALOG | REPOSITORY | BLACKLIST | FILE | OPERATE }
ON SYSTEM
FROM { ROLE | USER} {<role_name>|<user_identity>}
Resource group
REVOKE
{ ALTER | DROP | ALL [PRIVILEGES] }
ON { RESOURCE GROUP <resourcegroup_name> [, <resourcegroup_name>,...] | ALL RESOURCE GROUPS}
FROM { ROLE | USER} {<role_name>|<user_identity>}
Resource
REVOKE
{ USAGE | ALTER | DROP | ALL [PRIVILEGES] }
ON { RESOURCE <resource_name> [, <resource_name>,...] | ALL RESOURCES}
FROM { ROLE | USER} {<role_name>|<user_identity>}
User
REVOKE IMPERSONATE ON USER <user_identity> FROM USER <user_identity>;
Global UDF
REVOKE
{ USAGE | DROP | ALL [PRIVILEGES]}
ON { GLOBAL FUNCTION <function_name>(input_data_type) [, <function_name>(input_data_type),...]
| ALL GLOBAL FUNCTIONS }
FROM { ROLE | USER} {<role_name>|<user_identity>}
Internal catalog
REVOKE
{ USAGE | CREATE DATABASE | ALL [PRIVILEGES]}
ON CATALOG default_catalog
FROM { ROLE | USER} {<role_name>|<user_identity>}
External catalog
REVOKE
{ USAGE | DROP | ALL [PRIVILEGES] }
ON { CATALOG <catalog_name> [, <catalog_name>,...] | ALL CATALOGS}
FROM { ROLE | USER} {<role_name>|<user_identity>}
Database
REVOKE
{ ALTER | DROP | CREATE TABLE | CREATE VIEW | CREATE FUNCTION | CREATE MATERIALIZED VIEW | ALL [PRIVILEGES] }
ON {{ DATABASE <database_name> [, <database_name>,...]} | ALL DATABASES }
FROM { ROLE | USER} {<role_name>|<user_identity>}
- Сначала необходимо выполнить SET CATALOG перед выполнением этой команды.
Table
REVOKE
{ ALTER | DROP | SELECT | INSERT | EXPORT | UPDATE | DELETE | ALL [PRIVILEGES]}
ON { TABLE <table_name> [, < table_name >,...]
| ALL TABLES} IN
{ { DATABASE <database_name> [, <database_name>,...]} | ALL DATABASES }
FROM { ROLE | USER} {<role_name>|<user_identity>}
-
Сначала необходимо выполнить SET CATALOG перед выполнением этой команды.
-
Вы также можете использовать db.tbl для представления таблицы.
REVOKE <priv> ON TABLE db.tbl FROM {ROLE <role_name> | USER <user_identity>}
View
REVOKE
{ ALTER | DROP | SELECT | ALL [PRIVILEGES]}
ON { VIEW <view_name> [, < view_name >,...]
| ALL VIEWS} IN
{ { DATABASE <database_name> [, <database_name>,...]} | ALL DATABASES }
FROM { ROLE | USER} {<role_name>|<user_identity>}
-
Сначала необходимо выполнить SET CATALOG перед выполнением этой команды.
-
Вы также можете использовать db.view для представления view.
REVOKE <priv> ON VIEW db.view FROM {ROLE <role_name> | USER <user_identity>}
Materialized view
REVOKE
{ SELECT | ALTER | REFRESH | DROP | ALL [PRIVILEGES]}
ON { MATERIALIZED VIEW <mv_name> [, < mv_name >,...]
| ALL MATERIALIZED VIEWS} IN
{ { DATABASE <database_name> [, <database_name>,...] } | ALL [DATABASES] }
FROM { ROLE | USER} {<role_name>|<user_identity>}
-
Сначала необходимо выполнить SET CATALOG перед выполнением этой команды.
-
Вы также можете использовать db.mv для представления mv.
REVOKE <priv> ON MATERIALIZED VIEW db.mv FROM {ROLE <role_name> | USER <user_identity>}
Function
REVOKE
{ USAGE | DROP | ALL [PRIVILEGES]}
ON { FUNCTION <function_name>(input_data_type) [, <function_name>(input_data_type),...]
| ALL FUNCTIONS} IN
{ { DATABASE <database_name> [, <database_name>,...] } | ALL DATABASES }
FROM { ROLE | USER} {<role_name>|<user_identity>}
-
Сначала необходимо выполнить SET CATALOG перед выполнением этой команды.
-
Вы также можете использовать db.function для представления function.
REVOKE <priv> ON FUNCTION <db_name>.<function_name>(input_data_type) FROM {ROLE <role_name> | USER <user_identity>}
Storage volume
REVOKE
CREATE STORAGE VOLUME
ON SYSTEM
FROM { ROLE | USER} {<role_name>|<user_identity>}
REVOKE
{ USAGE | ALTER | DROP | ALL [PRIVILEGES] }
ON { STORAGE VOLUME < name > [, < name >,...] | ALL STORAGE VOLUME}
FROM { ROLE | USER} {<role_name>|<user_identity>}
Отзыв ролей
REVOKE <role_name> [,<role_name>, ...] FROM ROLE <role_name>
REVOKE <role_name> [,<role_name>, ...] FROM USER <user_identity>
Параметры
| Параметр | Описание |
|---|---|
| role_name | Имя роли. |
| user_identity | Идентификатор пользователя, например 'jack'@'192.%'. |
| resourcegroup_name | Имя resource group |
| resource_name | Имя ресурса. |
| function_name | Имя функции. |
| catalog_name | Имя external catalog. |
| database_name | Имя базы данных. |
| table_name | Имя таблицы. |
| view_name | Имя view. |
| mv_name | Имя materialized view. |
Примеры
Отзыв привилегий
Отозвать привилегию SELECT на таблицу sr_member у пользователя jack:
REVOKE SELECT ON TABLE sr_member FROM USER 'jack'@'192.%'
Отозвать привилегию USAGE на ресурс spark_resource у роли test_role:
REVOKE USAGE ON RESOURCE 'spark_resource' FROM ROLE 'test_role';
Отзыв ролей
Отозвать роль example_role у пользователя jack:
REVOKE example_role FROM 'jack'@'%';
Отозвать роль example_role у роли test_role:
REVOKE example_role FROM ROLE 'test_role';