
22/03/2011, 07:34
|
| | Fecha de Ingreso: marzo-2011 Ubicación: Bogotá
Mensajes: 4
Antigüedad: 13 años, 11 meses 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'); |