Use a tabela do sistema pg_roles
O Postgres sempre instala um banco de dados chamado "postgres". postgres é o banco de dados ao qual você se conecta quando não está se conectando a um banco de dados. Há uma tabela chamada
pg_roles
. Use este comando:
psql -U pgadmin -d postgres -c 'select * from pg_roles'
Que retorna isso:
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 linhas)
Veja esta resposta:Como verificar se um o usuário postgres existe?
Teste fazendo login
Apenas tente fazer login com o nome de usuário/senha fornecido e coloque-o com um try/catch, e se você puder fazer login, então é válido, caso contrário, não é válido.
Alterando o usuário
Você pode receber uma mensagem de erro se alterar um usuário que não existe:http://www.postgresql.org/docs/8.0/static/sql-alteruser.html
ALTER USER postgres WITH PASSWORD 'tmppassword';
Excluir e adicionar usuário novamente
Você pode receber uma mensagem de erro se tentar excluir e adicionar novamente um usuário. Portanto, se fosse inválido, teria gerado um erro ao tentar excluir um não usuário. http://www.postgresql.org/docs/8.0/static /sql-createuser.html