sql >> Databasteknik >  >> RDS >> PostgreSQL

Autentisera PostgreSQL-användare och lösenord utan databas

Använd systemtabellen pg_roles

Postgres installerar alltid en databas som heter "postgres". postgres är databasen du ansluter till när du inte ansluter till en databas. I det finns en tabell som heter pg_roles .

Använd detta kommando:

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

Vilket returnerar detta:

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

Se det här svaret:Hur du kontrollerar om en existerar postgres-användare?

Testa det genom att logga in

Försök bara att logga in med det angivna användarnamnet/lösenordet och omge det med en try/catch, och om du kan logga in är det giltigt, annars är det inte giltigt.

Ändra användaren

Du kanske kan få ett felmeddelande om du ändrar en användare som inte finns:http://www.postgresql.org/docs/8.0/static/sql-alteruser.html

ALTER USER postgres WITH PASSWORD 'tmppassword';

Ta bort och lägg till användare igen

Du kanske kan fånga ett felmeddelande om du försöker ta bort och lägga till en användare igen. Så om det var ogiltigt skulle det ha skapat ett fel när du försöker ta bort en icke-användare. http://www.postgresql.org/docs/8.0/static /sql-createuser.html



  1. Postgresql infoga trigger för att sammanfoga

  2. Express-fråga för SQL

  3. MySQL infoga på dubblettnyckel; radera?

  4. Hur använder jag longitud/latitudvärden effektivt i Mysql?