Re: Obtener los roles de un usuario

From: Rubén da Silva <ruben(at)ozonomultimedia(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Obtener los roles de un usuario
Date: 2006-05-04 11:30:19
Message-ID: 4459E5CB.4050507@ozonomultimedia.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Rubén da Silva wrote:
> Lo sé, I know, esto ya lo he probado! :
>
> -Se puede hacer comparando la lista de usuarios de cada rol con el oid
> de mi usuario. (Obteniendo el array y haciendolo fuera de la BD) o
> mediante un procedimiento almacenado.
> -Se puede preguntar mediante pg_has_role() si un rol pertenece a otro
> rol (grupo), pero implicaría varias consultas (tantas como grupos).
> -Se que como administrador o con los permisos suficientes podría
> obtenerse tambien de la tabla pg_authid.
>
> Pero me gustaría obtener, dado el nombre de usuario (rol de login) y
> estando conectado a la BD como éste (es decir, conectado como ese mismo
> usuario sin permisos "admin") y a través de 1 sola consulta, la lista de
> roles a los que pertenece tal usuario.
>
> Hasta ahora he hecho:
>
> "
> SELECT groname, grosysid
> FROM pg_group
> WHERE grolist *= (SELECT usesysid FROM pg_user WHERE usename = 'xxxx')
> "

Esto es increíble... me contesto a mi mismo:

SELECT groname, grosysid
FROM pg_group
WHERE
(SELECT usesysid FROM pg_user WHERE usename = 'xxxx') ANY (grolist)

>
> Pero parece que el tipo de dato de grolist (oid[]) no funciona como un
> array o ese operador que me he encontrado googleando no vale.
>
> P.D. He mirado en codigo fuente del PGadmin3 y lo hacen obteniendo el
> array y comparando cada OID de éste con la OID del usuario, por fuera,
> en la propia aplicación.
>
> ¿No se podría hacer de una forma más sencilla?
> Einstein creyó que "tiene que ser más sencillo que todo esto".
>
> Un saludo
> Rubén

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2006-05-04 12:48:10 Re: Podrian Ayudarme Porfavor
Previous Message Rubén da Silva 2006-05-04 10:59:31 Re: Obtener los roles de un usuario