1. 概要
「psql」では、一般的な「sql」を扱うのは、もちろんできるのですが、他に、一覧表示等の特別なコマンドを扱うことができます。
本ページは、下記のサイトを参考にさせていただきました。
「PostgreSQL | 作成済みのロール一覧を表示する」
「RDS for PostgreSQL で拡張機能を使用しているか確認するには」
2. ユーザ一覧
ユーザの一覧を表示するには、「postgres」ユーザになって「psql」から「SQL」を入力します。
ログインユーザ権限で。
sudo su postgres -c "psql"
わかりやすいように「SQL」の部分のみ抜き書きしておきます。
select * from pg_shadow;
実行とその結果です。
psql (10.1)
Type "help" for help.
postgres=# select * from pg_shadow;
usename | usesysid | usecreatedb | usesuper | userepl | usebypassrls | passwd | valuntil | useconfig
----------+----------+-------------+----------+---------+--------------+--------+----------+----------
postgres | 10 | t | t | t | t | | |
・・・
mantis | 16387 | t | t | f | f | | |
nobody | 16388 | f | f | f | f | | |
pgsql | 16389 | t | t | t | f | | |
www | 16390 | f | f | f | f | | |
(7 rows)
postgres=#
3. ロール一覧
よく理解していないので、ユーザとロールとスキーマの区別がようついておらんのですが・・・。
ロールの一覧を表示するには、「\du」
postgres=# \du
ロール一覧
ロール名 | 属性
----------+------------------------------------------------------------------------------
a |
b |
c | スーパーユーザー, DB作成可
nobody |
postgres | スーパーユーザー, ロール作成可, DB作成可, レプリケーション可, RLS のバイパス
d | DB作成可
e |
4. データベース一覧
データベースの一覧を表示するには「\l」。
dbname=# \l
データベース一覧
名前 | 所有者 | エンコーディング | 照合順序 | Ctype(変換演算子) | アクセス権
-----------+----------+------------------+----------+-------------------+-----------------
----- | -------- | UTF8 | C | C |
college | pgsql | UTF8 | C | C |
freebsd | -------- | UTF8 | C | C |
myhome | -------- | UTF8 | C | C |
postgres | pgsql | UTF8 | C | C |
takuro | -------- | UTF8 | C | C |
template0 | pgsql | UTF8 | C | C | =c/pgsql +
| | | | | pgsql=CTc/pgsql
template1 | pgsql | UTF8 | C | C | pgsql=CTc/pgsql+
| | | | | =c/pgsql
(8 行)
5. テーブル一覧
接続中のデータベースのテーブル一覧を表示するには「\dt」
dbname=# \dt
リレーションの一覧
スキーマ | 名前 | 型 | 所有者
----------+--------------+----------+----------
public | album | テーブル | --------
public | album_order | テーブル | --------
・・・
public | week | テーブル | --------
public | youtube | テーブル | --------
(18 行)
(stdin): ← ここで入力待ちになるので q で抜けます
6. 拡張機能
拡張機能の一覧を表示するには。
\dx
「PostgreSQL 17.4」で拡張機能をインストールしていない状態で実行すると、下記の結果が得られました。
# \dx
インストール済みの拡張一覧
名前 | バージョン | スキーマ | 説明
---------+------------+------------+------------------------------
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
拡張機能の構成を表示するには。
select * from pg_extension;
「PostgreSQL 17.4」で拡張機能をインストールしていない状態で実行すると、下記の結果が得られました。
=# select * from pg_extension;
oid | extname | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition
-------+---------+----------+--------------+----------------+------------+-----------+--------------
14549 | plpgsql | 10 | 11 | f | 1.0 | |