PostgreSQLのユーザ作成、データベース作成等の基本操作
PostgreSQLのユーザ作成、データベース作成等の基本操作を説明します。
pgAdminVを使用すれば簡単に下記の内容はできるが今回はコマンドラインを説明し、
PostgreSQLコマンドの実行はWindowsのコマンドプロンプトを利用します。

前提条件:PostgreSQLをインストールしたディレクトリ/binにパスが通っていること。
■PostgreSQLのユーザ作成(createuserの使用)
PostgreSQLにユーザをcreateuserコマンドを使用して作成するが
PostgreSQLにユーザ作成するのはスーパーユーザで行ないます。
※スーパーユーザとはpg_shadow テーブルで usesuper が設定されているユーザを指している。
|
C:>createuser -a -d -U postgres -P ユーザー名
Enter password for new role: [作成するユーザのパスワードを入力]
Enter it again:
[作成するユーザのパスワードを再入力]
Password:
[postgres(スーパーユーザ)のパスワードを入力]
CREATE ROLE
|
上記の「ユーザ名」を作成するユーザに変更して「CREATE ROLE」が表示されれば成功です。
※ユーザの削除はdropuserコマンドを使用します。
|
■
オプション概要
|
|
-a(--adduser)
|
新しいPostgreSQLユーザは、他のユーザを作成することが許可。
※このオプションを付けるとスーパーユーザ。
|
|
-d(--createdb)
|
新しいPostgreSQLユーザは、データベースの作成が許可されます。
|
-U [接続ユーザ名]
(--username)
|
PostgreSQLに接続するユーザ名を指定します。
上記コマンドではpostgres(スーパーユーザ)で接続しています。
|
|
-P(--pwprompt)
|
新しいPostgreSQLユーザのパスワードのプロンプトを表示します。
|
■PostgreSQLのデータベースの作成(createdbの使用)
PostgreSQLにデータベースをcreatedbコマンドを使用して作成し、
上記で作成したユーザ名を「userName」と仮定して話を進めます。
|
C:>createdb -E EUC-JP -O userName -U userName データベース名
Password: [-Oで指定したオーナのパスワードを入力]
CREATE DATABASE
|
上記の「データベース名」を作成するデータベース名に変更して
「CREATE DATABESE」が表示されれば成功です。
※データベースの削除はdropdbコマンドを使用します。
|
■
オプション概要
|
-E [エンコーディング名]
(--encording)
|
作成するデータベース内で使用する文字エンコード方式を指定します。
※上記コマンドでは「EUC-JP」を指定。
|
-O [オーナ名]
(--owner)
|
作成するデータベースの所有者となるユーザを指定します。
※上記コマンドでは「userName」をユーザに指定。
|
-U [接続ユーザ名]
(--username)
|
PostgreSQLに接続するユーザ名を指定します。
※上記コマンドでは「userName」で接続。
|
■PostgreSQLのファイルからSQL一括実行(pdqlの使用)
指定したファイル読み込んで実行するコマンドオプションを説明します。
このファイルにcreate文などを記述すればテーブル作成やマスタデータの登録を一括で行なえます。
PostgreSQLのデータベース名は「dbName」と仮定して話を進めます。
※詳しいオプションは「pdql --help」で参照できる。
|
C:>psql -f test.sql -U userName dbName
Password: [-Uで指定した接続ユーザのパスワードを入力]
|
ファイル[test.sql]の内容をデータベース[dbName]へ実行します。
※[test.sql]は「C:」に存在することを仮定しています。違う場所にある場合はパスを指定してください。
|
■
オプション概要
|
-f [ファイル名]
(--filename)
|
指定したファイルを問い合わせのソースとして使用します。
※上記のコマンドでは「test.sql」を読み込み実行。
|
-U [接続ユーザ名]
(--username)
|
PostgreSQLに接続するユーザ名を指定します。
※上記コマンドでは「userName」でPostgreSQLに接続。
|
-h [ホスト名]
(--hostname)
|
PostgreSQLに接続するホスト名を指定します。
※今回は接続先がローカルのため指定していない。
|
■PostgreSQL(データベース)のバックアップ(pg_dumpの使用)
pg_dumpコマンドを使用したPostgreSQLデータベースのバックアップを説明します。
|
C:>pg_dump -Fc -b -U userName -f 出力ファイル名 dbName
Password: [-Uで指定した接続ユーザのパスワードを入力]
|
ファイル[出力ファイル名]へデータベース[dbName]のデータを出力しています。
上記の内容を復元するにはpg_restore -d dbName 出力ファイル名 で復元できます。
|
■
オプション概要
|
-Fc
(--format)
|
「F」はファイルへの出力形式を選択します。
「c」はpg_restore (復元)への入力に適したカスタムアーカイブを出力します。
|
|
-b(--blobs)
|
ファイルへ出力する内容にラージオブジェクトを含めます。
|
-f [出力ファイル名]
(--file)
|
出力するファイルを指定します。
|
-t [テーブル名]
(--table)
|
指定したテーブルデータのみ出力します。
このオプションを指定しない場合はデータベース全てが出力されます。
|
-U [接続ユーザ名]
(--username)
|
PostgreSQLに接続するユーザ名を指定します。
上記コマンドでは「userName」で接続しています。
|
■関連書籍
PostgreSQLに関連する書籍をいくつか紹介します。
|