PostgreSQL - izudon/izudon.github.io GitHub Wiki
- PostgreSQL は、インストールすると、
postgres
というユーザが自動で作られる(Linuxの場合)。 - ユーザ
postgres
は、いわば DB 限定のスーパーユーザで、
以下のコマンドなどを実行する権限がある。-
pg_dump
: バックアップコマンド -
psql
: SQL 実行の対話的シェル / リストアにも使う。 -
createuser
: DBのユーザ(ロール)を作成するコマンド。
-
- ちなみに、DBにもユーザ
postgres
は作成されている(スーパーユーザである)。
- ロールとかいう意味でのユーザは(OSにではなく) DB 内部に記録されている。
- 作成するには以下の方法がある。
-
createuser
OS コマンドを実行する。
-P
オプションをつければパスワードがコマンドに残らない。$ createuser -P <user_name> 新しいロールのためのパスワード: もう一度入力してください:
-
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>' ;
-
- ユーザの削除
-
removeuser
OS コマンドを実行する。$ removeuser <user_name>
-
psql
からDROP USER
コマンドを実行する。psql> DROP USER <user_name> ;
-
pg_hba.conf
は、より詳細に接続権限を定義するファイルである。
- 接続方法
TYPE
(OSのユーザとしてか、TCP/IP 越しか、など) - DB名
DATABASE
(データベース名の指定) - ユーザ名
USER
(接続するユーザの指定) - 接続元
ADDRESS
(IPアドレスなどを範囲などで指定) - 認証方法
METHOD
(接続拒否か、パスワードなしか、LDAPか、等)
- データベースの作成
-
createdb
OS コマンドを叩く。$ createdb <db_name>
-
psql
からCREATE DATABASE
コマンドを叩くpsql> CREATE DATABASE <db_name> ;
-
- データベースの削除
-
dropdb
OS コマンドを叩く。$ dropdb <db_name>
-
psql
からDROP DATABASE
コマンドを叩くpsql> DROP DATABASE <db_name> ;
-
$ pg_dump <DB_name> > backup.sql
- ユーザ postgres に su しておくこと。
$ psql <DB_name> < backup.sql
- バックアップは、リストア用の SQL コマンド列として出力されているため、
単にpsql
にそれを読み込ませれば足りるようになっている。