A continuación se incluye una lista de comandos que parecen funcionar para crear un nuevo usuario (inicio de sesión) y otorgar acceso de solo lectura para una tabla específica en PostgreSQL.
Supongamos que estos comandos se ejecutan al iniciar sesión con suficientes privilegios (es decir, postgres
iniciar sesión en la instalación predeterminada).
CREATE ROLE user_name NOSUPERUSER NOCREATEDB
NOCREATEROLE NOINHERIT LOGIN PASSWORD 'pwd' VALID UNTIL 'infinity';
Ahora quiero otorgar select
en la tabla tab_abc
de la base de datos db_xyz
, así que aquí va (la base de datos db_xyz
se selecciona como actual a través de PgAdmin o algo así):
grant select on tab_abc to user_name;
La pregunta es: ¿es esto suficiente o debería haber más subvenciones (base de datos connect
, usage
tal vez)?
Estos comandos parecen funcionar para mí, pero mi instalación predeterminada tiene la configuración de seguridad predeterminada. ¿Qué subsidios adicionales debo agregar si el administrador del servidor configuró una seguridad más fuerte?
Parece que no necesito otorgar connect
ni usage
, ¿eso es implicito al otorgar select
? ¿Siempre es así?
fuente