Re: Cambiar de propietario a una base de datos

From: Jaime Casanova <jaime(dot)casanova(at)2ndquadrant(dot)com>
To: mauricio pullabuestan <jmauriciopb(at)yahoo(dot)es>
Cc: Ayuda Esp PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Cambiar de propietario a una base de datos
Date: 2018-01-10 16:24:58
Message-ID: CAJGNTePk9__BV-sxb0eL7O6UaBGQRshEbKs+GP_6mdA+=3BjHA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

2018-01-10 9:35 GMT-05:00 mauricio pullabuestan <jmauriciopb(at)yahoo(dot)es>:
>
> Tengo una base de datos que fue creada con postgres como su propietario, necesito crear varios usuario de acuerdo a las necesidades, pienso crear roles con diferentes permisos y luego adjuntar a estos roles a los usuarios correspondientes.
> Existe alguna herramienta para agilitar este proceso?
>

agilitarlo en que sentido?

>
> Adapte Audit trigger 91plus de Craig Ringer, a mis necesidades para auditar ciertas tablas, necesito crear un usuario, que sea el único que pueda crear editar y eliminar los trigger que
> se crear en las tablas a auditar y que el resto de usuarios puedan seguir trabajando sin tener problemas de permisos con estos triggers.
>

en ese caso la función del trigger debería tener la propiedad SECURITY
DEFINER, esto causará que el cuerpo de la función se ejecute con los
permisos del dueño de la función y no con los permisos del usuario que
ejecutó la sentencia que disparo el trigger, de ese modo no necesitas
darle permiso sobre las tablas de auditoría a los usuarios sino sólo
al dueño del trigger.

Si quieres que un usuario específico sea el que cree el trigger en
todas las tablas necesitas darle el permiso TRIGGER puedes hacerlo
así:

GRANT TRIGGER ON ALL TABLES IN SCHEMA public TO usuario;
ALTER DEFAULT PRIVILEGES GRANT TRIGGER ON TABLES TO usuario;

El primer comando dará permiso al usuario para crear triggers en todas
las tablas del esquema public (si tienes más esquemas deberás ejecutar
ese mismo comando varias veces cambiando el nombre del esquema), el
segundo comando hace que se le asigne ese mismo permiso al usuario en
cualquier tabla que se cree de ahora en adelante.

PS: debes tener presente que el dueño de la tabla también puede crear
triggers sobre la tabla, y ese permiso no se lo puedes quitar (porque
es el dueño de la tabla)

--
Jaime Casanova www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message baru gerardi 2018-01-10 17:32:13 Re: Extraer substring en texto con CR
Previous Message Ernesto Quiñones 2018-01-10 16:09:53 Re: Off-topic:Curso OnLine de PostgreSQL de tópicos avanzados