sql >> Base de Datos >  >> RDS >> PostgreSQL

Revocar el acceso a la base de datos de postgres para un rol

Este problema no tiene nada que ver con la base de datos postgres . En su lugar, desea manipular el catálogo de la base de datos actual. Cada base de datos tiene un catálogo de información sobre todos los objetos en el esquema pg_catalog y en forma compatible con los estándares en el esquema information_schema , por lo que debe restringir el acceso a aquellos para el rol en cuestión y también para el public rol porque cada rol también es miembro de ese rol:

REVOKE ALL PRIVILEGES ON SCHEMA pg_catalog FROM newrole;
REVOKE ALL PRIVILEGES ON SCHEMA pg_catalog FROM public;
REVOKE ALL PRIVILEGES ON SCHEMA information_schema FROM newrole;
REVOKE ALL PRIVILEGES ON SCHEMA information_schema FROM public;

Sin embargo, el sistema no siempre cumple con esta restricción generalizada, los catálogos están ahí por una razón y brindan funciones importantes en la base de datos. En particular, las funciones aún pueden ejecutarse.

En general, no querrá jugar con los catálogos a menos que realmente sepa lo que está haciendo. .