2018-01-10 9:35 GMT-05:00 mauricio pullabuestan <jmaurici...@yahoo.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