Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
PostgreSQL: otorgar/revocar permisos
Este tutorial de PostgreSQL explica cómo Otorgar y revocar permisos Viene con sintaxis y ejemplos en PostgreSQL.
describir
Puede otorgar y revocar permisos en varios objetos de base de datos en PostgreSQL. Veremos cómo otorgar y revocar permisos sobre tablas en PostgreSQL.
Otorgar permisos en la tabla
Puede otorgar a los usuarios varios permisos en las tablas. Estos permisos pueden ser cualquier combinación de SELECT, INSERT, UPDATE, DELETE, INDEX, CREATE, ALTER, DROP, GRANT OPTION o ALL.
sintaxis
La sintaxis para otorgar permisos de tabla en PostgreSQL es:
GRANT privileges ON object TO user;
privilegio
Permiso para ceder. Puede ser cualquiera de los siguientes valores:
privilegio | describir |
---|---|
escoger | Capacidad para ejecutar sentencias SELECT en tablas. |
insertar | Capacidad para ejecutar instrucciones INSERT en tablas. |
renovar | Capacidad para ejecutar instrucciones UPDATE en tablas. |
Eliminar | Capacidad para ejecutar sentencias DELETE en tablas. |
truncar | Capacidad para ejecutar una sentencia TRUNCATE en una tabla. |
Referirse a | Capacidad para crear claves foráneas (requiere privilegios en las tablas principal y secundaria). |
desencadenar | Capacidad para crear disparadores en las tablas. |
crear | Habilidad para ejecutar sentencias CREATE TABLE. |
todo | Otorga todos los permisos. |
objeto El nombre del objeto de la base de datos para el que otorga permisos. En el caso de permisos de tabla otorgados, este será el nombre de la tabla. usuario El nombre del usuario al que se le otorgarán estos permisos.
ejemplo
Veamos algunos ejemplos de cómo otorgar permisos de tabla en PostgreSQL.
Por ejemplo, si quisiera otorgar permisos SELECCIONAR, INSERTAR, ACTUALIZAR y ELIMINAR en una tabla llamada productos al nombre de usuario prograrmaplus, ejecutaría la siguiente instrucción GRANT:
GRANT SELECT, INSERT, UPDATE, DELETE ON products TO prograrmaplus;
También puede usar la palabra clave ALL para indicar que desea otorgar todos los permisos a un usuario llamado prograrmaplus. Por ejemplo:
GRANT ALL ON products TO prograrmaplus;
Si solo desea otorgar acceso SELECT a la tabla de productos a todos los usuarios, puede otorgar permiso a PUBLIC. Por ejemplo:
GRANT SELECT ON products TO PUBLIC;
Revocar privilegios en las tablas
Después de otorgar privilegios, es posible que deba revocar algunos o todos esos privilegios. Para hacer esto, puede ejecutar el comando deshacer. Puede deshacer cualquier combinación de SELECCIONAR, INSERTAR, ACTUALIZAR, ELIMINAR, TRUNCAR, REFERENCIAS, ACTIVAR, CREAR o TODO.
sintaxis
La sintaxis para revocar permisos en una tabla en PostgreSQL es:
REVOKE privileges ON object FROM user;
privilegio
Permisos revocados. Puede ser cualquiera de los siguientes valores:
privilegio | describir |
---|---|
escoger | Capacidad para ejecutar sentencias SELECT en tablas. |
insertar | Capacidad para ejecutar instrucciones INSERT en tablas. |
renovar | Capacidad para ejecutar instrucciones UPDATE en tablas. |
Eliminar | Capacidad para ejecutar sentencias DELETE en tablas. |
truncar | Capacidad para ejecutar una sentencia TRUNCATE en una tabla. |
Referirse a | Capacidad para crear claves foráneas (requiere privilegios en las tablas principal y secundaria). |
desencadenar | Capacidad para crear disparadores en las tablas. |
crear | Habilidad para ejecutar sentencias CREATE TABLE. |
todo | Otorga todos los permisos. |
objeto El nombre del objeto de la base de datos cuyos permisos desea revocar. En el caso de revocar permisos sobre una tabla, este será el nombre de la tabla. usuario El nombre del usuario cuyos permisos serán revocados.
ejemplo
Veamos algunos ejemplos de cómo revocar permisos sobre tablas en PostgreSQL.
Por ejemplo, si quisiera revocar los permisos de ELIMINAR y ACTUALIZAR para un usuario llamado prograrmaplus en una tabla denominada productos, ejecutaría la siguiente instrucción REVOKE:
REVOKE DELETE, UPDATE ON products FROM prograrmaplus;
Si desea revocar todos los permisos en la tabla para un usuario llamado prograrmaplus, puede usar la palabra clave ALL de la siguiente manera:
REVOKE ALL ON products FROM prograrmaplus;
Si ha otorgado privilegios SELECT a * (es decir, todos los usuarios) en la tabla de productos y desea revocar esos privilegios, puede ejecutar la siguiente instrucción REVOKE:
REVOKE SELECT ON products FROM PUBLIC;