viernes, 20 de noviembre de 2015

Permisos en postgres para correr aplicaciones Genexus

Una aplicación genexus Evo3 que en desarrollo accedía a la base con el superusuario de postgres, al tener que pasarla a producción tuve que restringir algunos permisos sobre la base de datos por temas de seguridad, acá le copio los pasos que tuve que realizar




Crear rol aplicación: grants_app_miapp
Crear usuario aplicación: app_miapp
Otorgar privilegios de: select, update, insert y delete, sobre todas las tablas de la base miapp
Otorgar privilegios de: select y usage, sobre todas las secuencias de la base miapp

Comandos ejecutados:

-- Executing query:
CREATE ROLE grants_app_miapp
  SUPERUSER INHERIT CREATEDB CREATEROLE REPLICATION;

-- Executing query:
ALTER ROLE grants_app_miapp IN DATABASE miapp
  SET search_path = "public";

-- Executing query:
COMMENT ON ROLE grants_app_miapp  IS 'Rol de aplicación de la base de datos miapp.';

-- Executing query:
CREATE ROLE app_miapp LOGIN
  PASSWORD ''
  NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;

-- Executing query:
COMMENT ON ROLE app_miapp IS 'Usuario de aplicación de la base de datos miapp. Obtiene los privilegios a través del rol grants_app_miapp';

-- Executing query:
GRANT grants_app_miapp TO app_miapp;
Query returned successfully with no result in 42 ms.

-- Executing query:
grant select,update,insert,delete on all tables in schema public to grants_app_miapp;

-- Executing query:
grant select on all SEQUENCEs in schema public to grants_app_miapp;

-- Executing query:
grant usage on all SEQUENCEs in schema public to grants_app_miapp;