PostgreSQL proporciona un conjunto de roles predeterminados que brindan acceso a ciertas capacidades e información privilegiadas, comúnmente necesarias. Los administradores pueden OTORGAR estos roles a los usuarios y/u otros roles en su entorno, proporcionando a esos usuarios acceso a las capacidades e información especificadas.

Los roles predeterminados se describen en la Tabla 21.1. Tenga en cuenta que los permisos específicos para cada uno de los roles predeterminados pueden cambiar en el futuro a medida que se agreguen capacidades adicionales. Los administradores deben monitorear las notas de la versión en busca de cambios.

Tabla 21.1. Funciones predeterminadas

Papel Acceso Permitido
pg_read_all_settings Lea todas las variables de configuración, incluso aquellas que normalmente solo son visibles para los superusuarios.
pg_read_all_stats Lea todas las vistas de pg_stat_* y use varias extensiones relacionadas con las estadísticas, incluso aquellas que normalmente solo son visibles para los superusuarios.
pg_stat_scan_tablas Ejecutar funciones de monitoreo que pueden tomar ACCESS SHARE bloqueos en las tablas, potencialmente durante mucho tiempo.
pg_monitor Leer/ejecutar varias vistas y funciones de monitoreo. Este rol es miembro de pg_read_all_settings, pg_read_all_stats y pg_stat_scan_tables.
pg_signal_backend Señale a otro backend para cancelar una consulta o finalizar su sesión.
pg_read_server_files Permita la lectura de archivos desde cualquier ubicación a la que pueda acceder la base de datos en el servidor con COPY y otras funciones de acceso a archivos.
pg_write_server_files Permita escribir en archivos en cualquier ubicación a la que pueda acceder la base de datos en el servidor con COPY y otras funciones de acceso a archivos.
pg_execute_server_program Permitir la ejecución de programas en el servidor de la base de datos como el usuario que ejecuta la base de datos con COPY y otras funciones que permiten ejecutar un programa del lado del servidor.

los pg_monitor, pg_read_all_settings, pg_read_all_stats y pg_stat_scan_tables Los roles están destinados a permitir que los administradores configuren fácilmente un rol con el fin de monitorear el servidor de la base de datos. Conceden un conjunto de privilegios comunes que permiten que el rol lea varios valores de configuración útiles, estadísticas y otra información del sistema normalmente restringida a los superusuarios.

los pg_signal_backend El rol está destinado a permitir que los administradores habiliten roles de confianza, pero que no sean de superusuario, para enviar señales a otros backends. Actualmente, este rol permite el envío de señales para cancelar una consulta en otro backend o finalizar su sesión. Sin embargo, un usuario al que se le otorgó este rol no puede enviar señales a un backend propiedad de un superusuario. Consulte la Sección 9.27.2.

los pg_read_server_files, pg_write_server_files y pg_execute_server_program Los roles están destinados a permitir que los administradores tengan roles de confianza, pero no de superusuario, que pueden acceder a archivos y ejecutar programas en el servidor de la base de datos como el usuario con el que se ejecuta la base de datos. Como estos roles pueden acceder a cualquier archivo en el sistema de archivos del servidor, omiten todas las verificaciones de permisos a nivel de la base de datos cuando acceden a los archivos directamente y podrían usarse para obtener acceso a nivel de superusuario, por lo tanto, se debe tener mucho cuidado al otorgar estos roles a usuarios

Se debe tener cuidado al otorgar estos roles para garantizar que solo se usen cuando sea necesario y con el entendimiento de que estos roles otorgan acceso a información privilegiada.

Los administradores pueden otorgar acceso a estos roles a los usuarios mediante el comando GRANT, por ejemplo:

GRANT pg_signal_backend TO admin_user;
Anterior Arriba Próximo
21.4. Eliminación de roles Casa 21.6. Función Seguridad