PostgreSQL クライアントアプリケーション(createuser、dropuser、createdb、psql、vacuumdb)

createuser

https://www.postgresql.jp/document/11/html/app-createuser.html

  • オプション
    • -P, --pwprompt パスワードの設定
    • -s, --superuser スーパユーザ権限を付与
    • -d, --createdb データベース作成の権限を付与
    • -r, --createrole ユーザ(ロール)作成の権限を付与
    • -l, --login 接続の権限を付与
    • -h 接続先ホスト
    • -p ポート番号
    • -U 接続ユーザ名

createroleというコマンドはない。
コマンドを実行するにはCREATEROLEという権限が必要。
オプション P だけ大文字。他のオプションの大文字は権限を付与しないようになっている。

dropuser

https://www.postgresql.jp/document/11/html/app-dropuser.html

  • dropuser [接続オプション] [オプション] [ユーザ名]
    • オプション
      • -i, --interactive 削除前に確認を促すメッセージが表示されるようになる。
      • -U 接続ユーザ名

createdb

https://www.postgresql.jp/document/11/html/app-createdb.html

  • createdb [接続オプション] [オプション] [データベース名]
    • オプション
      • -E, --encoding
      • -l, --locale
      • -O, --owner (スーパーユーザのみ実行可能)
      • -T, --template

データベース名が未指定の場合、createdbを実行するOSユーザと同じ名前のデータベースを作成する。
template1を指定した場合、template1に設定されたエンコーディングロケールは変更ができない。
エンコーディングロケールをテンプレートとは別の設定にしたい場合は、template0を指定した上で、-E、-lオプションを使用し変更する。

psql

https://www.postgresql.jp/document/11/html/app-psql.html

  • psql [option...] [dbname [username]]

使用例。

  • データベースの一覧表示
  • コマンドの実行
    • psql -c, psql --command=(SQLとメタコマンドを混在できない)
  • ファイルの実行
    • psql -f ファイル, psql --file=ファイル
  • 各コマンドごとに実行するかキャンセルするかの確認を行う
  • 複数のコマンドを1つのトランザクションで実行する

接続先のホスト名を省略すると、環境変数 PGHOST の値を使用する。
PGHOST がない場合は、実行したホストが接続先になる。
接続先のポート番号を省略すると、環境変数 PGPORT の値を使用する。
PGPORT がない場合は、5432を使用する。

kameyatakefumi.hatenablog.com

vacuumdb

https://www.postgresql.jp/document/11/html/app-vacuumdb.html

  • vacuumdb [接続オプション] [オプション] [-t テーブル名] [データベース名]
    • -a, --all 全てのデータベースを処理対象とする
    • -f, --full 不要領域の回収と削除を行う
    • -z, --analyze 不要領域の回収に加え、統計情報の収集・更新を行う
    • -Z, --analyze-only 不要領域の回収を行わず、統計情報の収集・更新を行う

kameyatakefumi.hatenablog.com