REVOKE

Nombre

REVOKE  --  Revoca el privilegio de acceso a un usuario, a un grupo o a todos los usuarios.

Synopsis

REVOKE privilegio [, ...]
    ON objeto [, ...]
    FROM { PUBLIC | GROUP ER">gBLE> | nombre_usuario }
  

Entradas

privilegio

Los posibles privilegios son:

SELECT

Privilegio para acceder a todas las columnas de una tabla o vista específica.

INSERT

Privilegio de insertar datos en todas las columnas de una tabla específica.

UPDATE

Privilegio para actualizar todas las columnas de tabla.

DELETE

Privilegio para borrar filas de una tabla específica.

RULE

Privilegio para definir reglas en una tabla o vista. (Veáse CREATE RULE).

ALL

Rescinde todos los privilegios.

objeto

El nombre de un objeto sobre el que revocar el acceso. Los posibles objetos son:

  • tablea

  • vista

  • secuencia

  • índice

grupo

El nombre de un grupo al cual se revocan privilegios.

nombre_usuario

El nombre de un usuario al cual se revocan privilegios. Utilice la palabra clave PUBLIC para especificar todos los usuarios.

PUBLIC

Rescinde el/los privilegio(s) especificado(s) a todos los usuarios.

Salidas

CHANGE

Mensaje devuelto si ha tenido éxito.

ERROR

Mensaje que se devuelve si el objeto no está disponible o si es imposible revocar privilegios al grupo o a los usuarios.

Descripción

REVOKE permite al creador de una objeto revocar permisos asignados anteriormente a todos los usuarios (mediante PUBLIC) o a un usuario o a un grupo.

Notas

Consulte el comando psql \z para obtener más información sobre permisos en objetos existentes:

Database    = lusitania
+------------------+---------------------------------------------+
|  Relation        |        Grant/Revoke Permissions             |
+------------------+---------------------------------------------+
| mytable          | {"=rw","miriam=arwR","group todos=rw"}      |
+------------------+---------------------------------------------+
Legend:
     uname=arwR -- privileges granted to a user
     group gname=arwR -- privileges granted to a GROUP
     =arwR -- privileges granted to PUBLIC
		  
     r -- SELECT
     w -- UPDATE/DELETE
     a -- INSERT
     R -- RULE
     arwR -- ALL
    

Sugerencia

Actualmente, para crear un grupo debe insertar los datos manualmente en la tabla table pg_group de este modo:

INSERT INTO pg_group VALUES ('todos');
CREATE USER miriam IN GROUP todos;
     

Utilización

Revoca el privilegio de inserción a todos los usuarios en la tabla films:

REVOKE INSERT ON films FROM PUBLIC;
  

Revoca todos los privilegios al usuario manuel en la vista kinds:

  
REVOKE ALL ON kinds FROM manuel;
   

Compatibilidad

SQL92

La sintaxis de SQL92 para el comando REVOKE tiene capacidades adicionales para rescindir privilegios, incluso aquellos en columnas individuales en tablas:

REVOKE { SELECT | DELETE | USAGE | ALL PRIVILEGES } [, ...]
    ON objeto
    FROM { PUBLIC | nombre_usuario [, ...] } { RESTRICT | CASCADE }
REVOKE { INSERT | UPDATE | REFERENCES } [, ...] [ ( columna [, ...] ) ]
    ON objeto
    FROM { PUBLIC | nombre_usuario [, ...] } { RESTRICT | CASCADE }
       

Vea GRANT para más detalles en campos individuales.

REVOKE GRANT OPTION FOR privilegio [, ...]
    ON objeto
    FROM { PUBLIC | nombre_usuario [, ...] } { RESTRICT | CASCADE }
       

Rescinde a un usuario la autoridad para garantizar el privilegio especificado a otros usuarios. Veáse GRANT para los detalles en campos individuales.

Los objetos posibles son:

[ TABLE ] tabla/vista
CHARACTER SET conjunto_caracteres
COLLATION colección
TRANSLATION traslación
DOMAIN dominio

Si user1 da un privilegio con la opción GRANT a user2 y user2 se lo da a user3, entonces user1 puede revocar este privilegio en cascada usando la palabra clave CASCADE.

Si user1 da un privilegio con GRANT a user2 y user2 se lo da a user3, entonces si user1 intenta revocar este privilegio, fallará si ha especificado la palabra clave RESTRICT.