Använd systemtabellen pg_roles
Postgres installerar alltid en databas som heter "postgres". postgres är databasen du ansluter till när du inte ansluter till en databas. I det finns en tabell som heter pg_roles
.
Använd detta kommando:
psql -U pgadmin -d postgres -c 'select * from pg_roles'
Vilket returnerar detta:
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 rader)
Se det här svaret:Hur du kontrollerar om en existerar postgres-användare?
Testa det genom att logga in
Försök bara att logga in med det angivna användarnamnet/lösenordet och omge det med en try/catch, och om du kan logga in är det giltigt, annars är det inte giltigt.
Ändra användaren
Du kanske kan få ett felmeddelande om du ändrar en användare som inte finns:http://www.postgresql.org/docs/8.0/static/sql-alteruser.html
ALTER USER postgres WITH PASSWORD 'tmppassword';
Ta bort och lägg till användare igen
Du kanske kan fånga ett felmeddelande om du försöker ta bort och lägga till en användare igen. Så om det var ogiltigt skulle det ha skapat ett fel när du försöker ta bort en icke-användare. http://www.postgresql.org/docs/8.0/static /sql-createuser.html