PostgreSQL - izudon/izudon.github.io GitHub Wiki

DB への接続権限

OSのユーザ postgres

  • PostgreSQL は、インストールすると、
    postgres というユーザが自動で作られる(Linuxの場合)。
  • ユーザ postgres は、いわば DB 限定のスーパーユーザで、
    以下のコマンドなどを実行する権限がある。
    • pg_dump : バックアップコマンド
    • psql : SQL 実行の対話的シェル / リストアにも使う。
    • createuser : DBのユーザ(ロール)を作成するコマンド。
  • ちなみに、DBにもユーザ postgres は作成されている(スーパーユーザである)。

DBの USER

  • ロールとかいう意味でのユーザは(OSにではなく) DB 内部に記録されている。
  • 作成するには以下の方法がある。
    1. createuser OS コマンドを実行する。
      -P オプションをつければパスワードがコマンドに残らない。
      $ createuser -P <user_name>
      新しい􏰂ロール􏰀のためのパスワード:
      もう一度入力してください:
    2. psql から CREATE USER コマンドを実行する。
      psql> CREATE USER <user_name> PASSWORD '<password>' ;
  • ユーザの確認
    • psql から ¥du と叩く。
      psql> ¥du
  • パスワードの変更
    • psql から ALTER USER コマンドを実行する。
      psql> ALTER USER <user_name> PASSWORD '<new_password>' ;
  • ユーザの削除
    1. removeuser OS コマンドを実行する。
      $ removeuser <user_name>
    2. psql から DROP USER コマンドを実行する。
      psql> DROP USER <user_name> ;

設定ファイル pg_hba.conf

pg_hba.conf は、より詳細に接続権限を定義するファイルである。

  • 接続方法 TYPE(OSのユーザとしてか、TCP/IP 越しか、など)
  • DB名 DATABASE(データベース名の指定)
  • ユーザ名 USER(接続するユーザの指定)
  • 接続元 ADDRESS(IPアドレスなどを範囲などで指定)
  • 認証方法 METHOD(接続拒否か、パスワードなしか、LDAPか、等)

DBの DATABASE

  • データベースの作成
    1. createdb OS コマンドを叩く。
      $ createdb <db_name>
    2. psql から CREATE DATABASE コマンドを叩く
      psql> CREATE DATABASE <db_name> ;
  • データベースの削除
    1. dropdb OS コマンドを叩く。
      $ dropdb <db_name>
    2. psql から DROP DATABASE コマンドを叩く
      psql> DROP DATABASE <db_name> ;

バックアップとリストア

バックアップ

$ pg_dump <DB_name> > backup.sql
  • ユーザ postgres に su しておくこと。

リストア

$ psql <DB_name> < backup.sql
  • バックアップは、リストア用の SQL コマンド列として出力されているため、
    単に psql にそれを読み込ませれば足りるようになっている。

参考

⚠️ **GitHub.com Fallback** ⚠️