Използвайте системната таблица pg_roles
Postgres винаги инсталира база данни, наречена "postgres". postgres е базата данни, към която се свързвате, когато не се свързвате към база данни. Има таблица, наречена pg_roles
.
Използвайте тази команда:
psql -U pgadmin -d postgres -c 'select * from pg_roles'
Което връща това:
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 реда)
Вижте този отговор:Как да проверя дали съществува ли потребител на postgres?
Тествайте го, като влезете
Просто опитайте да влезете с предоставеното потребителско име/парола и го оградете с try/catch и ако можете да влезете, значи е валидно, в противен случай не е валидно.
Промяна на потребител
Може да успеете да хванете съобщение за грешка, ако промените потребител, който не съществува:http://www.postgresql.org/docs/8.0/static/sql-alteruser.html
ALTER USER postgres WITH PASSWORD 'tmppassword';
Изтрийте и добавете отново потребител
Може да успеете да видите съобщение за грешка, ако се опитате да изтриете и добавите отново потребител. Така че, ако беше невалиден, тогава щеше да изведе грешка, когато се опитате да изтриете непотребител. http://www.postgresql.org/docs/8.0/static /sql-createuser.html