REVOKE - Amazon Redshift

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, use sql. Para procedimientos almacenados, utilice plpgsql.

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.

ON DATABASE shared_database_name> [, ...]

Revoca los permisos de uso especificados en la base de datos concreta que se creó en el recurso compartido de datos indicado.

ON SCHEMA shared_schema

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.

Para obtener más información acerca de las notas de uso de REVOKE, consulte Notas de uso.

Para ver ejemplos de cómo utilizar REVOKE, consulte Ejemplos.