PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Autenticar usuário e senha do PostgreSQL sem banco de dados


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