Użyj tabeli systemowej pg_roles
Postgres zawsze instaluje bazę danych o nazwie „postgres”. postgres to baza danych, z którą łączysz się, gdy nie łączysz się z bazą danych. Znajduje się tam tabela o nazwie pg_roles
.
Użyj tego polecenia:
psql -U pgadmin -d postgres -c 'select * from pg_roles'
Co zwraca to:
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 rzędy)
Zobacz odpowiedź:Jak sprawdzić, czy Użytkownik postgres istnieje?
Przetestuj, logując się
Po prostu spróbuj zalogować się za pomocą dostarczonej nazwy użytkownika/hasła i otocz je try/catch, a jeśli możesz się zalogować, jest to ważne, w przeciwnym razie nie jest ważne.
Zmiana użytkownika
Możesz być w stanie złapać komunikat o błędzie, jeśli zmienisz użytkownika, który nie istnieje:http://www.postgresql.org/docs/8.0/static/sql-alteruser.html
ALTER USER postgres WITH PASSWORD 'tmppassword';
Usuń i ponownie dodaj użytkownika
Możesz być w stanie złapać komunikat o błędzie, jeśli spróbujesz usunąć i ponownie dodać użytkownika. Więc jeśli był nieprawidłowy, spowodowałby błąd podczas próby usunięcia użytkownika niebędącego użytkownikiem. http://www.postgresql.org/docs/8.0/static /sql-createuser.html