Utilizza la tabella di sistema pg_roles
Postgres installa sempre un database chiamato "postgres". postgres è il database a cui ti connetti quando non ti connetti a un database. C'è una tabella chiamata pg_roles
.
Usa questo comando:
psql -U pgadmin -d postgres -c 'select * from pg_roles'
Che restituisce questo:
rolname | rolsuper | rolinherit | rolcreaterole | rolcreatedb | rolcatupdate | rolcanlogin | rolreplication | rolconnlimit | rolpassword | rolvaliduntil | rolconfig | oid
----------+----------+------------+---------------+-------------+--------------+-------------+----------------+--------------+-------------+---------------+-----------+-------
postgres | t | t | t | t | t | t | t | -1 | ******** | | | 10
pgadmin | t | t | t | t | t | t | t | -1 | ******** | | | 16384
(2 righe)
Vedi questa risposta:Come verificare se un esiste un utente postgres?
Testalo effettuando l'accesso
Prova ad accedere con il nome utente/password forniti e circondalo con un try/catch, e se riesci ad accedere allora è valido, altrimenti non è valido.
Modificare l'utente
Potresti essere in grado di catturare un messaggio di errore se modifichi un utente che non esiste:http://www.postgresql.org/docs/8.0/static/sql-alteruser.html
ALTER USER postgres WITH PASSWORD 'tmppassword';
Elimina e aggiungi nuovamente utente
Potresti essere in grado di ricevere un messaggio di errore se tenti di eliminare e aggiungere nuovamente un utente. Quindi, se non fosse valido, avrebbe generato un errore quando si tenta di eliminare un non utente. http://www.postgresql.org/docs/8.0/static /sql-createuser.html