From: | Alejandro Gasca <agasca(at)yahoo(dot)com> |
---|---|
To: | ayuda postgres <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Como obtener grupos para usuarios restringidos |
Date: | 2006-10-26 21:55:43 |
Message-ID: | 20061026215543.38201.qmail@web34306.mail.mud.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Saludos.
Estoy tratando de obtener los grupos a los que pertenece un usuario. He
visto que con pg_role y pg_grup se puede obtener esto. El problema es
con usuarios a los que pienso no darles acceso a los catalogos de
sistema.
Se me ocurrio hace una función parecida a esto:
CREATE OR REPLACE FUNCTION catalogos.dame_grupo_usuario(que_usuario
text)
RETURNS text AS
$BODY$Declare
grupo_usuario text;
Begin
select into grupo_usuario pg_group.groname from pg_group, pg_roles
where pg_roles.oid = ANY (pg_group.grolist) AND pg_roles.rolname =
que_usuario;
return grupo_usuario;
End;$BODY$
LANGUAGE 'plpgsql' VOLATILE SECURITY DEFINER;
Es un ejemplo, ya que falta adaptar para que devuelva todos los grupos.
Bueno, el problema es que a esta funcion se le puede pasar cualquier
nombre de usuario, y la idea es que solo pase el nombre del usuario que
esta llamandola. si por ejemplo cambio algo la funcion y le pongo
where pg_roles.oid = ANY (pg_group.grolist) AND pg_roles.rolname = user
me devuelve siempre el grupo del usuario al que esta aduen~ada...
y pues no se si exista una variable parecida a 'user' pero que regrese
solo los grupos a los que esta adscito 'user'.
De antemano, gracias.
Alejandro
__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
Regístrate ya - http://correo.espanol.yahoo.com/
From | Date | Subject | |
---|---|---|---|
Next Message | Jorge A. Barzola Rosadio | 2006-10-26 22:09:46 | PGAdmin |
Previous Message | Alvaro Herrera | 2006-10-26 20:56:31 | Re: [Fwd: Re: como almacenar una imagen en una tabla y no morir |