2010/3/10 Oswaldo Hernández <[email protected]>: > Hola, > > Tengo una sesión abierta con un usuario y en un momento dado cambia el > operador de la maquina. El operador saliente cierra sus transacciones y a > continuación el nuevo operador debe identificarse con sus datos. > > Las identificaciones las realizo a nivel de roles de base de datos por lo > que me gustaría saber si: > > ¿Es posible cambiar de usuario en una sesión activa sin necesidad de cerrar > y volver a reabrir la conexión? > > He estado viendo SET SESSION AUTHORIZATION pero según la documentación hace > que un usuario con privilegios cambie a un usuario sin privilegios, lo cual > no es este caso. >
SET SESSION AUTHORIZATION te sirve siempre que primero te hayas conectado como un superusuario, por ejemplo (fijate que la segunda vez no regrese al usuario postgres antes de cambiar de usuario): postgres=# select current_user, session_user; current_user | session_user --------------+-------------- postgres | postgres (1 fila) postgres=# set session authorization eduardo; SET postgres=> select current_user, session_user; current_user | session_user --------------+-------------- eduardo | eduardo (1 fila) postgres=> set session authorization jcm; SET postgres=> select current_user, session_user; current_user | session_user --------------+-------------- jcm | jcm (1 fila) -- Atentamente, Jaime Casanova Soporte y capacitación de PostgreSQL Asesoría y desarrollo de sistemas Guayaquil - Ecuador Cel. +59387171157 -- TIP 4: No hagas 'kill -9' a postmaster
