Gebruik de systeemtabel pg_roles
Postgres installeert altijd een database genaamd "postgres". postgres is de database waarmee u verbinding maakt wanneer u geen verbinding maakt met een database. Daarin is een tabel genaamd pg_roles
.
Gebruik dit commando:
psql -U pgadmin -d postgres -c 'select * from pg_roles'
Wat dit oplevert:
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 rijen)
Zie dit antwoord:Hoe te controleren of een bestaat er een postgres-gebruiker?
Test het door in te loggen
Probeer gewoon in te loggen met de opgegeven gebruikersnaam/wachtwoord en omring het met een try/catch, en als je kunt inloggen, dan is het geldig, anders is het niet geldig.
De gebruiker wijzigen
U kunt mogelijk een foutmelding krijgen als u een gebruiker wijzigt die niet bestaat:http://www.postgresql.org/docs/8.0/static/sql-alteruser.html
ALTER USER postgres WITH PASSWORD 'tmppassword';
Gebruiker verwijderen en opnieuw toevoegen
U kunt mogelijk een foutmelding krijgen als u een gebruiker probeert te verwijderen en opnieuw toe te voegen. Dus als het ongeldig was, zou het een fout hebben gegenereerd wanneer u een niet-gebruiker probeert te verwijderen. http://www.postgresql.org/docs/8.0/static /sql-createuser.html