概要
PostgreSQLにて"public"
スキーマの所有者(owner of schema public
)がどのアカウントなのか知る方法を記載します。DBeaverからではパッと見、調べる方法がなさそうでしたので。。
SQLクエリ
PostgreSQLのスキーマ情報はpg_namespace
というシステムカタログテーブルに格納されています。
このテーブルをクエリしてスキーマ"public"
の所有者を知ることができます。
SELECT nspname, pg_get_userbyid(nspowner) AS owner
FROM pg_namespace
WHERE nspname = 'public';
上記SQLでは、以下のことをおこなっています。
-
pg_namespace
カタログテーブルを使用→指定したスキーマの情報を取得-
nspname
(名前空間の名前)とnspowner
(名前空間の所有者)はpg_namespace
のカラム。ユーザーが直接操作するものではない。 -
pg_
で始まるスキーマは PostgreSQL のシステムが使用しているもの。
-
-
pg_get_userbyid
関数を使用→所有者のユーザー名を取得
上記で無事に所有者の名前を取得することができました。