概要
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関数を使用→所有者のユーザー名を取得
上記で無事に所有者の名前を取得することができました。