システムテーブルpg_rolesを使用
Postgresは常に「postgres」と呼ばれるデータベースをインストールします。 postgresは、データベースに接続していないときに接続するデータベースです。 pg_roles
というテーブルがあります 。
次のコマンドを使用します:
psql -U pgadmin -d postgres -c 'select * from pg_roles'
これを返します:
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行)
この回答を参照してください: postgresユーザーは存在しますか?
ログインしてテストします
提供されたユーザー名/パスワードでログインして、try / catchで囲んでください。ログインできる場合は有効ですが、そうでない場合は無効です。
ユーザーの変更
存在しないユーザーを変更すると、エラーメッセージが表示される場合があります: http://www.postgresql.org/docs/8.0/static/sql-alteruser.html
ALTER USER postgres WITH PASSWORD 'tmppassword';
ユーザーを削除して再度追加
ユーザーを削除して再度追加しようとすると、エラーメッセージが表示される場合があります。したがって、それが無効である場合、非ユーザーを削除しようとするとエラーがスローされます。 http://www.postgresql.org/docs/8.0/static /sql-createuser.html