PostgreSQL - izudon/izudon.github.io GitHub Wiki
- PostgreSQL は、インストールすると、
postgresというユーザが自動で作られる(Linuxの場合)。 - ユーザ
postgresは、いわば DB 限定のスーパーユーザで、
以下のコマンドなどを実行する権限がある。-
pg_dump: バックアップコマンド -
psql: SQL 実行の対話的シェル / リストアにも使う。 -
createuser: DBのユーザ(ロール)を作成するコマンド。
-
- ちなみに、DBにもユーザ
postgresは作成されている(スーパーユーザである)。
- ロールとかいう意味でのユーザは(OSにではなく) DB 内部に記録されている。
- 作成するには以下の方法がある。
-
createuserOS コマンドを実行する。
-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>' ;
-
- ユーザの削除
-
removeuserOS コマンドを実行する。$ 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か、等)
- データベースの作成
-
createdbOS コマンドを叩く。$ createdb <db_name>
-
psqlからCREATE DATABASEコマンドを叩くpsql> CREATE DATABASE <db_name> ;
-
- データベースの削除
-
dropdbOS コマンドを叩く。$ 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にそれを読み込ませれば足りるようになっている。