REVOKE privilegio [, ...] ON objeto [, ...] FROM { PUBLIC | GROUP ER">gBLE> | nombre_usuario }
Los posibles privilegios son:
Privilegio para acceder a todas las columnas de una tabla o vista específica.
Privilegio de insertar datos en todas las columnas de una tabla específica.
Privilegio para actualizar todas las columnas de tabla.
Privilegio para borrar filas de una tabla específica.
Privilegio para definir reglas en una tabla o vista. (Veáse CREATE RULE).
Rescinde todos los privilegios.
El nombre de un objeto sobre el que revocar el acceso. Los posibles objetos son:
tablea
vista
secuencia
índice
El nombre de un grupo al cual se revocan privilegios.
El nombre de un usuario al cual se revocan privilegios. Utilice la palabra clave PUBLIC para especificar todos los usuarios.
Rescinde el/los privilegio(s) especificado(s) a todos los usuarios.
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.
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;
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;
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.