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
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 |