PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Autentica utente e password PostgreSQL senza database

Utilizza la tabella di sistema pg_roles

Postgres installa sempre un database chiamato "postgres". postgres è il database a cui ti connetti quando non ti connetti a un database. C'è una tabella chiamata pg_roles .

Usa questo comando:

psql -U pgadmin -d postgres -c 'select * from pg_roles'

Che restituisce questo:

 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 righe)

Vedi questa risposta:Come verificare se un esiste un utente postgres?

Testalo effettuando l'accesso

Prova ad accedere con il nome utente/password forniti e circondalo con un try/catch, e se riesci ad accedere allora è valido, altrimenti non è valido.

Modificare l'utente

Potresti essere in grado di catturare un messaggio di errore se modifichi un utente che non esiste:http://www.postgresql.org/docs/8.0/static/sql-alteruser.html

ALTER USER postgres WITH PASSWORD 'tmppassword';

Elimina e aggiungi nuovamente utente

Potresti essere in grado di ricevere un messaggio di errore se tenti di eliminare e aggiungere nuovamente un utente. Quindi, se non fosse valido, avrebbe generato un errore quando si tenta di eliminare un non utente. http://www.postgresql.org/docs/8.0/static /sql-createuser.html