私の PostgreSQL データベースには、postgres と myuser という 2 つのユーザーがいます。
デフォルトのユーザーは postgres ですが、このユーザーには外部テーブルをクエリする権限がなく、myuser には権限があります。適切なユーザーに接続しているかどうかを確認するにはどうすればよいですか?
間違ったユーザーを使用している場合、正しいユーザーに変更するにはどうすればいいですか?
ベストアンサー1
psql コマンド プロンプトから現在の接続に関する情報を取得するには:
\conninfo
ただし、これにより、より多くの情報が表示されます。
ユーザーを変更するには:
\c - a_new_user
「-」は現在のデータベースの代わりになります。
データベースを変更するにはそしてユーザー:
\c a_new_database a_new_user
この情報を取得するための SQL コマンド:
SELECT current_user;
例:
postgres=# \conninfo
You are connected to database "postgres" as user "postgres" via socket in "/var/run/postgresql" at port "5432"
postgres=# \c a_new_database a_new_user
psql (12.1 (Ubuntu 12.1-1.pgdg16.04+1), server 9.5.20)
You are now connected to database "a_new_database" as user "a_new_user".
a_new_database=# SELECT current_user;
current_user
--------------
a_new_user
(1 row)
このページには、いくつかの興味深い関数と変数がリストされています。
https://www.postgresql.org/docs/current/static/functions-info.html