Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/03/2011, 07:34
hivs77
 
Fecha de Ingreso: marzo-2011
Ubicación: Bogotá
Mensajes: 4
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: como hacer select de la tabla pg_user

En realidad la vista pg_user no contierne la informacion de la contrasena del rol..si vemos la definicion de la misma:

CREATE OR REPLACE VIEW pg_user AS
SELECT pg_shadow.usename, pg_shadow.usesysid, pg_shadow.usecreatedb, pg_shadow.usesuper, pg_shadow.usecatupd, '********'::text AS passwd, pg_shadow.valuntil, pg_shadow.useconfig
FROM pg_shadow;

Esta contiene un a lista de asteriscos para la contraseña, incluso pg_shadow tampoco contiene la contraseña, la información para autenticación esta en la tabla pg_authid donde se encuentran tanto los grupos como los roles, el usuario y la contraseña se encuentran en sus campos rolname y rolpassword respectivamente. La estructura del atributo rolpassword es la siguiente: 'md5' || md5(contrasena || usuario), para su caso, la sentencia de autenticación seria:

select rolname from pg_authid where rolname='usuario1' and rolpassword='md5' || md5('mipasword' || 'usuario1');