Re: Cambiar el usuario activo

From: Oswaldo Hernández <listas(at)soft-com(dot)es>
To: Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Cambiar el usuario activo
Date: 2010-03-10 18:12:36
Message-ID: 4B97E114.2030906@soft-com.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Jaime Casanova escribió:
> 2010/3/10 Oswaldo Hernández <listas(at)soft-com(dot)es>:
>> 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)
>
>

Gracias por tu respuestas Jaime, pero he descartado esto porque
necesitaría que la aplicación conociera la contraseña del superusuario
para realizar la conexion inicial, y preferiría evitarlo. Además el
cambio de usuario con set session authotization se realiza sin necesidad
de password, solo con el nombre, con lo cual seria la aplicación la que
tendria que verificar el password registrado para el rol, lo cual no se
si es posible.

Las aplicaciones de pooling como pgpool deben de hacerlo de alguna
forma, si no, no podrian reutilizar las conexiones, intentaré investigar
como lo hacen.

Saludos,

--
Oswaldo Hernández

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Juan Romero 2010-03-10 18:26:22 Re: obtencion de tablas y columnas
Previous Message Jaime Casanova 2010-03-10 17:50:34 Re: Cambiar el usuario activo