REVOKE
Quita los permisos de acceso, como los permisos para crear, eliminar o actualizar tablas, a un usuario o rol.
Solo puede dar permisos GRANT o REVOKE USAGE en un esquema externo a los usuarios de la base de datos y los roles con la sintaxis ON SCHEMA. Cuando use ON EXTERNAL SCHEMA con AWS Lake Formation, solo puede usar GRANT y REVOKE para conceder y revocar permisos a un rol de AWS Identity and Access Management (IAM). Para obtener una lista de los permisos, consulte la sintaxis.
Para procedimientos almacenados, se concede el permiso USAGE ON LANGUAGE plpgsql
a PUBLIC de manera predeterminada. El permiso EXECUTE ON PROCEDURE se concede solo al propietario y a los superusuarios de manera predeterminada.
Especifique en el comando REVOKE los permisos que desea eliminar. Para conceder permisos, utilice el comando GRANT.
Sintaxis
REVOKE [ GRANT OPTION FOR ] { { SELECT | INSERT | UPDATE | DELETE | DROP | REFERENCES | ALTER | TRUNCATE } [,...] | ALL [ PRIVILEGES ] } ON { [ TABLE ] table_name [, ...] | ALL TABLES IN SCHEMA schema_name [, ...] } FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ] REVOKE [ GRANT OPTION FOR ] { { CREATE | TEMPORARY | TEMP | ALTER } [,...] | ALL [ PRIVILEGES ] } ON DATABASE db_name [, ...] FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ] REVOKE [ GRANT OPTION FOR ] { { CREATE | USAGE | ALTER } [,...] | ALL [ PRIVILEGES ] } ON SCHEMA schema_name [, ...] FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ] REVOKE [ GRANT OPTION FOR ] EXECUTE ON FUNCTION function_name ( [ [ argname ] argtype [, ...] ] ) [, ...] FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ] REVOKE [ GRANT OPTION FOR ] { { EXECUTE } [,...] | ALL [ PRIVILEGES ] } ON PROCEDURE procedure_name ( [ [ argname ] argtype [, ...] ] ) [, ...] FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ] REVOKE [ GRANT OPTION FOR ] USAGE ON LANGUAGE language_name [, ...] FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ]
A continuación, se muestra la sintaxis de los permisos de nivel de columna en tablas y vistas de Amazon Redshift.
REVOKE { { SELECT | UPDATE } ( column_name [, ...] ) [, ...] | ALL [ PRIVILEGES ] ( column_name [,...] ) } ON { [ TABLE ] table_name [, ...] } FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ]
A continuación, se muestra la sintaxis para revocar el permiso ASSUMEROLE a los usuarios y grupos con un rol especificado.
REVOKE ASSUMEROLE ON { 'iam_role' [, ...] | default | ALL } FROM { user_name | ROLE role_name | GROUP group_name | PUBLIC } [, ...] FOR { ALL | COPY | UNLOAD | EXTERNAL FUNCTION | CREATE MODEL }
A continuación, se muestra la sintaxis para la integración de Redshift Spectrum con Lake Formation.
REVOKE [ GRANT OPTION FOR ] { SELECT | ALL [ PRIVILEGES ] } ( column_list ) ON EXTERNAL TABLE schema_name.table_name FROM { IAM_ROLE iam_role } [, ...] REVOKE [ GRANT OPTION FOR ] { { SELECT | ALTER | DROP | DELETE | INSERT } [, ...] | ALL [ PRIVILEGES ] } ON EXTERNAL TABLE schema_name.table_name [, ...] FROM { { IAM_ROLE iam_role } [, ...] | PUBLIC } REVOKE [ GRANT OPTION FOR ] { { CREATE | ALTER | DROP } [, ...] | ALL [ PRIVILEGES ] } ON EXTERNAL SCHEMA schema_name [, ...] FROM { IAM_ROLE iam_role } [, ...]
Permisos de recursos compartidos de datos del lado del productor
A continuación, se muestra la sintaxis para utilizar REVOKE para quitar permisos ALTER o SHARE a un usuario o rol. El usuario cuyos permisos se han revocado ya no puede modificar el recurso compartido de datos ni conceder el uso a un consumidor.
REVOKE { ALTER | SHARE } ON DATASHARE datashare_name FROM { username [ WITH GRANT OPTION ] | ROLE role_name | GROUP
group_name
| PUBLIC } [, ...]
A continuación, se muestra la sintaxis para utilizar REVOKE para eliminar el acceso de un consumidor a un recurso compartido de datos.
REVOKE USAGE ON DATASHARE datashare_name FROM NAMESPACE 'namespaceGUID' [, ...] | ACCOUNT 'accountnumber' [ VIA DATA CATALOG ] [, ...]
A continuación, se ofrece un ejemplo de cómo revocar el uso de un recurso compartido de datos de una cuenta de Lake Formation.
REVOKE USAGE ON DATASHARE salesshare FROM ACCOUNT '123456789012' VIA DATA CATALOG;
Permisos de recursos compartidos de datos del lado del consumidor
A continuación, se muestra la sintaxis de REVOKE para los permisos de uso compartido de datos en una base de datos o un esquema específicos creados a partir de un datashare. La revocación del permiso de uso de una base de datos creada con la cláusula WITH PERMISSIONS no revoca ningún permiso adicional que haya concedido a un usuario o rol, ni siquiera los permisos de nivel de objeto concedidos a los objetos subyacentes. Si vuelve a conceder el permiso de uso a ese usuario o rol, conservarán todos los permisos adicionales que tenían antes de que revocara el uso.
REVOKE USAGE ON { DATABASE shared_database_name [, ...] | SCHEMA shared_schema} FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
Los permisos limitados le permiten conceder permisos a un usuario o rol en todos los objetos de un tipo dentro de una base de datos o un esquema. Los usuarios y roles con permisos limitados tienen los permisos especificados en todos los objetos actuales y futuros de la base de datos o del esquema.
Puede ver el alcance de los permisos limitados en el nivel de base de datos en SVV_DATABASE_PRIVILEGES. Puede ver el alcance de los permisos limitados en el nivel de esquema en SVV_SCHEMA_PRIVILEGES.
A continuación, se muestra la sintaxis para revocar permisos acotados a usuarios y roles. Para obtener más información sobre los permisos acotados, consulte Permisos acotados.
REVOKE [ GRANT OPTION ] { CREATE | USAGE | ALTER } [,...] | ALL [ PRIVILEGES ] } FOR SCHEMAS IN DATABASE db_name FROM { username | ROLE role_name } [, ...] REVOKE [ GRANT OPTION ] { { SELECT | INSERT | UPDATE | DELETE | DROP | ALTER | TRUNCATE | REFERENCES } [, ...] } | ALL [PRIVILEGES] } } FOR TABLES IN {SCHEMA schema_name [DATABASE db_name ] | DATABASE db_name } FROM { username] | ROLE role_name} [, ...] REVOKE [ GRANT OPTION ] { EXECUTE | ALL [ PRIVILEGES ] } FOR FUNCTIONS IN {SCHEMA schema_name [DATABASE db_name ] | DATABASE db_name } FROM { username | ROLE role_name | } [, ...] REVOKE [ GRANT OPTION ] { EXECUTE | ALL [ PRIVILEGES ] } FOR PROCEDURES IN {SCHEMA schema_name [DATABASE db_name ] | DATABASE db_name } FROM { username | ROLE role_name | } [, ...] REVOKE [ GRANT OPTION ] USAGE FOR LANGUAGES IN {DATABASE db_name} FROM { username | ROLE role_name } [, ...]
Tenga en cuenta que los permisos limitados no distinguen entre los permisos de las funciones y los de los procedimientos. Por ejemplo, la siguiente instrucción revoca los permisos EXECUTE
tanto para las funciones como para los procedimientos de bob
en el esquema Sales_schema
.
REVOKE EXECUTE FOR FUNCTIONS IN SCHEMA Sales_schema FROM bob;
A continuación, se muestra la sintaxis para los permisos de modelos de machine learning en Amazon Redshift.
REVOKE [ GRANT OPTION FOR ] CREATE MODEL FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ] REVOKE [ GRANT OPTION FOR ] { EXECUTE | ALL [ PRIVILEGES ] } ON MODEL model_name [, ...] FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ]
A continuación, se muestra la sintaxis para revocar permisos de rol en Amazon Redshift.
REVOKE [ ADMIN OPTION FOR ] { ROLE role_name } [, ...] FROM { user_name } [, ...]
REVOKE { ROLE role_name } [, ...] FROM { ROLE role_name } [, ...]
A continuación, se muestra la sintaxis para revocar permisos de sistema a los roles en Amazon Redshift.
REVOKE { { CREATE USER | DROP USER | ALTER USER | CREATE SCHEMA | DROP SCHEMA | ALTER DEFAULT PRIVILEGES | ACCESS CATALOG | CREATE TABLE | DROP TABLE | ALTER TABLE | CREATE OR REPLACE FUNCTION | CREATE OR REPLACE EXTERNAL FUNCTION | DROP FUNCTION | CREATE OR REPLACE PROCEDURE | DROP PROCEDURE | CREATE OR REPLACE VIEW | DROP VIEW | CREATE MODEL | DROP MODEL | CREATE DATASHARE | ALTER DATASHARE | DROP DATASHARE | CREATE LIBRARY | DROP LIBRARY | CREATE ROLE | DROP ROLE TRUNCATE TABLE VACUUM | ANALYZE | CANCEL }[, ...] } | { ALL [ PRIVILEGES ] } FROM { ROLE role_name } [, ...]
Co la siguiente sintaxis, se puede revocar permisos para explicar los filtros de la política de seguridad de la fila de una consulta en el plan EXPLAIN. Puede revocar el privilegio mediante la instrucción REVOKE.
REVOKE EXPLAIN RLS FROM ROLE rolename
Con la siguiente sintaxis, se puede conceder permisos para omitir las políticas de seguridad de la fila para una consulta.
REVOKE IGNORE RLS FROM ROLE rolename
A continuación, se muestra la sintaxis para revocar permisos de la política de seguridad de la fila especificada.
REVOKE SELECT ON [ TABLE ] table_name [, ...] FROM RLS POLICY policy_name [, ...]
Parámetros
- GRANT OPTION FOR
-
Revoca solo la opción de conceder un permiso especificado a otros usuarios y no revoca el permiso en sí. No puede revocar GRANT OPTION de un grupo o de PUBLIC.
- SELECT
-
Revoca el privilegio para seleccionar datos de una tabla o vista a través de una instrucción SELECT.
- INSERT
-
Revoca el permiso para cargar datos en una tabla a través de una instrucción INSERT o una instrucción COPY.
- UPDATE
-
Revoca el privilegio para actualizar una columna de la tabla a través de una instrucción UPDATE.
- DELETE
-
Revoca el permiso para eliminar una fila de datos de una tabla.
- REFERENCES
-
Revoca el permiso para crear una restricción de clave externa. Debe revocar este permiso en la tabla a la que se hace referencia y en la tabla de referencia.
- TRUNCATE
-
Revoca el permiso para truncar una tabla. Sin este permiso, solo el propietario de una tabla o un superusuario pueden truncarla. Para obtener más información sobre el comando TRUNCATE, consulte TRUNCATE.
- ALL [ PRIVILEGES ]
-
Revoca todos los permisos disponibles a la vez del usuario o grupo especificado. La palabra clave PRIVILEGES es opcional.
nota
Amazon Redshift no admite los permisos RULE y TRIGGER. Para obtener más información, consulte Características no compatibles de PostgreSQL.
- ALTER
-
Según el objeto de base de datos, revoca los siguientes permisos del usuario o grupo de usuarios:
-
En el caso de las tablas, ALTER revoca el permiso para modificar una tabla o una vista. Para obtener más información, consulte ALTER TABLE.
-
En el caso de las bases de datos, ALTER revoca el permiso para modificar una base de datos. Para obtener más información, consulte ALTER DATABASE.
-
En el caso de los esquemas, ALTER concede revocaciones para modificar un esquema. Para obtener más información, consulte ALTER SCHEMA.
-
En el caso de las tablas externas, ALTER revoca el permiso para alterar una tabla en un AWS Glue Data Catalog que esté habilitado para Lake Formation. Este permiso solo se aplica cuando se utiliza Lake Formation.
-
- DROP
-
Revoca permiso para eliminar una tabla. Este permiso se aplica en Amazon Redshift y en un AWS Glue Data Catalog habilitado para Lake Formation.
- ASSUMEROLE
-
Revoca el permiso para ejecutar comandos COPY, UNLOAD, EXTERNAL FUNCTION o CREATE MODEL de usuarios, roles o grupos con un rol especificado.
- ON [ TABLE ] table_name
-
Revoca los permisos especificados en una tabla o vista. La palabra clave TABLE es opcional.
- ON ALL TABLES IN SCHEMA schema_name (nombre_de_esquema)
-
Revoca los permisos especificados en todas las tablas en el esquema al que se hace referencia.
- ( column_name [,...] ) ON TABLE table_name
-
Revoca los permisos especificados de usuarios, grupos o PUBLIC en las columnas especificadas de la tabla o la vista de Amazon Redshift.
- ( column_list ) ON EXTERNAL TABLE schema_name.table_name
-
Revoca los permisos especificados de un rol de IAM en las columnas especificadas de la tabla de Lake Formation en el esquema de la referencia.
- ON EXTERNAL TABLE schema_name.table_name
-
Revoca los permisos especificados de un rol de IAM en las tablas de Lake Formation especificadas en el esquema de la referencia.
- ON EXTERNAL SCHEMA schema_name
-
Revoca los permisos especificados de un rol de IAM en el esquema al que se hace referencia.
- FROM IAM_ROLE iam_role
-
Indica el rol de IAM que pierde los permisos.
- ROLE role_name
-
Revoca los permisos del rol especificado.
- GROUP group_name
-
Revoca los permisos del grupo de usuarios especificado.
- PUBLIC
-
Revoca los permisos especificados de todos los usuarios. PUBLIC representa un grupo que siempre incluye a todos los usuarios. Los permisos de un usuario individual constan de la suma de permisos concedidos a PUBLIC, los permisos concedidos a cualquier grupo al que pertenezca el usuario y los permisos concedidos al usuario de manera individual.
La revocación de PUBLIC de una tabla externa de Lake Formation da lugar a la revocación del permiso del grupo everyone de Lake Formation.
- CREATE
-
Según el objeto de base de datos, revoca los siguientes permiso del usuario o grupo de usuarios:
-
Para las bases de datos, usar la cláusula CREATE para REVOKE previene que los usuarios creen esquemas dentro de la base de datos.
-
Para los esquemas, usar la cláusula CREATE para REVOKE previene que los usuarios creen objetos dentro de un esquema. Para cambiar el nombre de un objeto, el usuario debe tener el permiso CREATE y ser propietario del objeto cuyo nombre va a cambiarse.
nota
De manera predeterminada, todos los usuarios tienen permisos CREATE y USAGE en el esquema PUBLIC.
-
- TEMPORARY | TEMP
-
Revoca el permiso para crear tablas temporales en la base de datos especificada.
nota
Por defecto, los usuarios reciben permisos para crear tablas temporales con su membresía automática en el grupo PUBLIC. Para eliminar el permiso de cualquier usuario para crear tablas temporales, revoque el permiso TEMP del grupo PUBLIC y, después, conceda explícitamente el permiso para crear tablas temporales solo a usuarios o grupos de usuarios específicos.
- ON DATABASE db_name
-
Revoca los permisos en la base de datos especificada.
- USAGE
-
Revoca los permisos USAGE en objetos de un esquema específico, lo que provoca que los usuarios no puedan acceder a estos objetos. Las acciones específicas en estos objetos deben revocarse por separado (como el permiso EXECUTE en las funciones).
nota
De manera predeterminada, todos los usuarios tienen permisos CREATE y USAGE en el esquema PUBLIC.
- ON SCHEMA schema_name
-
Revoca los permisos en el esquema especificado. Puede usar permisos de esquema para controlar la creación de tablas. El permiso CREATE para una base de datos solo controla la creación de esquemas.
- RESTRICT
-
Revoca solo los permisos que el usuario concedió directamente. Este es el comportamiento predeterminado.
- EXECUTE ON PROCEDURE procedure_name
-
Revoca el permiso EXECUTE en un procedimiento almacenado específico. Debido a que los nombres de procedimientos almacenados no se pueden sobrecargar, debe incluir la lista de argumentos para el procedimiento. Para obtener más información, consulte Nomenclatura de los procedimientos almacenados.
- EXECUTE ON ALL PROCEDURES IN SCHEMA procedure_name
-
Revoca los permisos especificados en todos los procedimientos en el esquema al que se hace referencia.
- USAGE ON LANGUAGE language_name
-
Revoca el permiso USAGE en un lenguaje. Para Funciones definidas por el usuario (UDF) utilice
plpythonu
. Para las UDF de SQL, usesql
. Para procedimientos almacenados, utiliceplpgsql
.Para crear una UDF, debe tener permiso para usar el lenguaje de SQL o
plpythonu
(Python). De manera predeterminada, se concede el permiso USAGE ON LANGUAGE SQL a PUBLIC. No obstante, debe conceder explícitamente el permiso de USAGE ON LANGUAGE PLPYTHONU a usuarios o grupos específicos.Para revocar los permisos de uso de SQL, primero revoque el uso de PUBLIC. A continuación, conceda los permisos de uso de SQL a solo los usuarios o grupos que tienen permiso para crear UDF de SQL. En el siguiente ejemplo, se revocan los permisos de uso de SQL de PUBLIC y después se conceden permisos de uso al grupo de usuarios
udf_devs
.revoke usage on language sql from PUBLIC; grant usage on language sql to group udf_devs;
Para obtener más información, consulte Seguridad y permisos de UDF.
Para revocar el uso para procedimientos almacenados, primero revoque el uso de PUBLIC. A continuación, conceda los permisos de uso en
plpgsql
solo a los usuarios o grupos que tienen permiso para crear procedimientos almacenados. Para obtener más información, consulte Seguridad y privilegios para procedimientos almacenados . - FOR { ALL | COPY | UNLOAD | EXTERNAL FUNCTION | CREATE MODEL } [, ...]
-
Especifica el comando SQL para el cual se revoca el permiso. Puede especificar ALL para revocar el permiso en las instrucciones COPY, UNLOAD, EXTERNAL FUNCTION y CREATE MODEL. Esta cláusula se aplica solo a la revocación del permiso ASSUMEROLE.
- ALTER
Revoca el permisos ALTER para usuarios o grupos de usuarios, lo que permite modificar un recurso compartido de datos a quienes no lo poseen. Este permiso es necesario para agregar o quitar objetos de un recurso compartido de datos o para establecer la propiedad PUBLICACCESSIBLE. Para obtener más información, consulte ALTER DATASHARE.
- SHARE
Revoca permisos para usuarios y grupos de usuarios que sirven para agregar consumidores a un recurso compartido de datos. Es necesario revocar este permiso para que un consumidor concreto deje de acceder al recurso compartido de datos desde sus clústeres.
- ON DATASHARE datashare_name
Concede los permisos especificados en el recurso compartido de datos al que se hace referencia.
- FROM username
Indica el usuario que pierde los permisos.
- FROM GROUP group_name
Indica el grupo de usuarios que pierde los permisos.
- WITH GRANT OPTION
Indica que el usuario que pierde los permisos puede, a su vez, revocar los mismos permisos a otros usuarios. No se puede revocar WITH GRANT OPTION para un grupo o para PUBLIC.
- USAGE
Cuando se revoca USAGE para una cuenta consumidora o un espacio de nombres dentro de la misma cuenta, estos no pueden acceder al datashare y a los objetos del datashare para lectura solamente.
La revocación del permiso USAGE revoca el acceso de los consumidores a un recurso compartido de datos.
- FROM NAMESPACE 'clusternamespace GUID'
Indica el espacio de nombres en la misma cuenta que tiene consumidores que pierden los permisos en el recurso compartido de datos. Los espacios de nombres utilizan un identificador único global (GUID) alfanumérico de 128 bits.
- FROM ACCOUNT 'número_de_cuenta' [ VIA DATA CATALOG ]
Indica el número de otra cuenta que tiene consumidores que pierden los permisos en el recurso compartido de datos. Si especifica “VIA DATA CATALOG”, se indica que revoca el uso del recurso compartido de datos de una cuenta de Lake Formation. Omitir el número de cuenta significa que se revoca de la cuenta que es propietaria del clúster.
-
Revoca los permisos de uso especificados en la base de datos concreta que se creó en el recurso compartido de datos indicado.
-
Revoca los permisos especificados en el esquema concreto que se creó en el recurso compartido de datos indicado.
- FOR { SCHEMAS | TABLES | FUNCTIONS | PROCEDURES | LANGUAGES } IN
-
Especifica los objetos de la base de datos a los que se va a revocar el permiso. Los parámetros que siguen a IN definen el alcance del permiso revocado.
- CREATE MODEL
Revoca el permiso CREATE MODEL para crear modelos de machine learning en la base de datos especificada.
- ON MODEL model_name
Revoca el permiso EXECUTE para un modelo específico.
- ACCESS CATALOG
-
Revoca el permiso para ver los metadatos relevantes de los objetos a los que tiene acceso el rol.
- [ ADMIN OPTION FOR ] { role } [, …]
Rol que se revoca a un usuario especificado que tiene WITH ADMIN OPTION.
- FROM { role } [, …]
Rol al que se le revoca el rol especificado.
Notas de uso
Para obtener más información acerca de las notas de uso de REVOKE, consulte Notas de uso.
Ejemplos
Para ver ejemplos de cómo utilizar REVOKE, consulte Ejemplos.