PostgreSQLのよく使うコマンド一覧

開発の現場において、PostgreSQLのよく使うコマンド一覧をご紹介します。

条件

  • PostgreSQL 10以降

コマンド一覧

データベースに入る前

バージョン確認

$ psql —version

ヘルプ表示

$ psql --help

データベース一覧表示

$ psql -l

データベースの各種操作

データベースに入る

$ psql <DB_NAME>

ユーザーを指定してデータベースに入る

$ psql -U <ROLE_NAME> <DB_NAME>

データベース一覧表示

# \l

データベースの切り替え

# \c <DB_NAME>

データベース作成

# create database <DB_NAME>;
データベースのオーナー指定
# create database <DB_NAME> owner <OWNER_NAMR>;
データベースのエンコーディング指定
# create database <DB_NAME> encoding <ENCODE_NAMR>;
上記をまとめて指定した場合の例
# create database test owner mrs encoding UTF8;

データベース削除

# drop database <DB_NAME>;

データベースから出る

# \q

テーブルの各種操作

テーブル一覧表示

# \d
# \dt

テーブルのスキーマの詳細表示

# \d <TABLE_NAME>

ロール(ユーザー)の各種操作

ロール(ユーザー)作成

# create role <ROLE_NAME> login;
# create user <ROLE_NAME>;

上記のコマンドは同義です。
→ログイン権限を持つロールを作成します。

以下のコマンドの場合、ログイン権限を持たないロールが作成されます。

# create role <ROLE_NAME>;

ロール(ユーザー)の一覧表示

# \du

ロール(ユーザー)属性の変更

# alter role <ROLE_NAME> login;
# alter role <ROLE_NAME> nologin;

ロール属性には、以下のようなものがあります。

login, superuser, createdb, createrole, replication, password

ロール属性の詳細については、以下を参照してください。

https://www.postgresql.jp/document/10/html/role-attributes.html

ロール(ユーザー)の削除

# drop role <ROLE_NAME>;

権限の各種操作

ロール(ユーザー)に権限を付与

# grant <権限> on <TABLE_NAME> to <ROLE_NAME>;

権限には、以下のようなものがあります。

select, insert, update, delete, truncate, references, trigger, create, connect, temporary, execute, usage, all privileges

https://www.postgresql.jp/document/10/html/sql-grant.html

よく使うパターンは以下のコマンドです。
(テーブル等の参照、レコード追加、更新、削除の権限を付与。)

# grant select, insert, update, delete on <TABLE_NAME> to <ROLE_NAME>;

ロール(ユーザー)から権限を剥奪

# revoke <権限> on <TABLE_NAME> to <ROLE_NAME>;

参考

PostgreSQL 10.5文書

https://www.postgresql.jp/document/10/html/index.html

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です