phpPgAdmin
【概要】
phpPgAdmin は,PostgreSQL データベースの操作を Web ブラウザから実行できる管理ツールである.次の操作を,SQL を書かずにグラフィカル・ユーザ・インタフェース(GUI)で行える.
【目次】
- 1. 事前準備事項
- 2. phpPgAdmin のインストール手順(Windows 環境)
- 3. phpPgAdmin のインストール手順(Linux 環境)
- 4. 新規ユーザ(ロール)の作成手順
- 5. アクセス権限の設定
- 6. テーブル定義の管理
- 7. SQL クエリの編集と実行
- 8. テーブルデータの管理(閲覧,追加,削除,更新)
- 9. テーブルデータのエクスポート
【関連する外部ページ】
- phpPgAdmin 配布ページ(GitHub): https://github.com/phppgadmin/phppgadmin/releases
- PostgreSQL 公式ページ: https://www.postgresql.org/
【サイト内の関連ページ】
1. 事前準備事項
phpPgAdmin を使用するために,次のユーザ名(Role Name),パスワード,テストデータベース名を事前に決める.いずれも半角文字で設定し,スペースを含めない.本資料では次の値を使用する.
- phpPgAdmin 実行用のユーザ名(Role Name)とパスワード
- ユーザ名: testuser
- パスワード: hoge$#34hoge5(実際の運用では,これとは異なる強固なパスワードを設定する)
セキュリティ上の理由から,phpPgAdmin はデータベース管理者ではなく,専用のユーザアカウント(ロール)を作成して使用する.
- データベース名: testdb
phpPgAdmin のテスト用に作成するデータベースの名称である.識別しやすい名前を設定する.
準備事項
次の設定が必要となるため,事前に確認する.
- PostgreSQL データベース管理者のユーザ名とパスワード
PostgreSQL の管理者は,データベースに対するすべての操作権限を持つユーザである.インストール時に設定した値を確認する.本資料では,管理者のユーザ名を postgres,パスワードをインストール時に設定した値として説明する.
2. phpPgAdmin のインストール手順(Windows 環境)
Web サーバと PHP のインストール
phpPgAdmin の実行には,Web サーバ(Apache HTTP Server)と,PostgreSQL 拡張を有効にした PHP 7.1 以上が必要である(phpPgAdmin 7.13.0 は PHP 7.1 以上に対応する).
- PHP のダウンロード
https://windows.php.net/download/ から Windows 版の PHP を入手する.
- PHP の設定
php.ini で,PostgreSQL 用拡張(
extension=pgsql)と,マルチバイト文字列用拡張(extension=mbstring)を有効にする. - インストール確認
Web サーバの公開ディレクトリに,次の内容の test.php を作成する.
<?php phpinfo(); ?>http://localhost/test.php にアクセスし,PHP 情報ページが表示されることを確認する.
phpPgAdmin のインストール手順
- ダウンロード
https://github.com/phppgadmin/phppgadmin/releases から phpPgAdmin-7.13.0.zip を入手する.
- インストール
phpPgAdmin-7.13.0.zip を展開し,フォルダ名を phpPgAdmin に変更する.phpPgAdmin フォルダを,Web サーバの公開ディレクトリ(htdocs 等)にコピーする.
- 設定ファイルの修正
管理者ユーザ(postgres)でもログインできるよう,phpPgAdmin\conf\config.inc.php を次のように修正する.extra_login_security を true にすると,パスワードなしのログインや,pgsql・postgres・root・administrator などの特定ユーザ名でのログインが拒否される(初期値は true).
【修正前】$conf['extra_login_security'] = true; 【修正後】$conf['extra_login_security'] = false; - インストール確認
http://localhost/phpPgAdmin にアクセスし,phpPgAdmin のログイン画面が表示されることを確認する.
3. phpPgAdmin のインストール手順(Linux 環境)
インストール
PHP(PostgreSQL 拡張とマルチバイト文字列拡張を有効化したもの)が事前にインストールされていることを確認する.次のコマンドで phpPgAdmin を展開する(Apache の公開ディレクトリを /usr/local/apache2 とする例).
cd /tmp
wget https://github.com/phppgadmin/phppgadmin/releases/download/REL_7-13-0/phpPgAdmin-7.13.0.tar.gz
cd /usr/local/apache2
tar -xvzf /tmp/phpPgAdmin-7.13.0.tar.gz
設定手順
- 設定ファイルの編集
conf/config.inc.php で,接続先ホスト(host),既定データベース(defaultdb),表示言語(default_lang),pg_dump・pg_dumpall のパス,extra_login_security などを確認・設定する.表示言語を日本語にする場合は次のように設定する.
cd /usr/local/apache2/phpPgAdmin-7.13.0 vi conf/config.inc.php $conf['default_lang'] = 'japanese'; - Apache の設定ファイル httpd.conf に,phpPgAdmin へのエイリアスとアクセス設定を追加する(Apache 2.4 系の記法).
vi /usr/local/apache2/conf/httpd.conf --- Alias /pgadmin/ "/usr/local/apache2/phpPgAdmin-7.13.0/" <Directory "/usr/local/apache2/phpPgAdmin-7.13.0"> AllowOverride All Options ExecCGI Require all granted </Directory> --- - (オプション)アクセス制御の設定
phpPgAdmin へのアクセスを制限するため,.htaccess に Basic 認証を設定する.ユーザ名 testuser,パスワード hoge$#34hoge5 を登録する例を次に示す.
# 既存の .htpasswd がある場合は -c オプションを省略する /usr/local/apache2/bin/htpasswd -b -c /usr/local/apache2/conf/.htpasswd testuser hoge$#34hoge5 cat /usr/local/apache2/conf/.htpasswd vi /usr/local/apache2/phpPgAdmin-7.13.0/.htaccess --- AuthGroupFile /dev/null AuthName "testuser (PostgreSQL) Page" AuthType Basic require valid-user ---
4. 新規ユーザ(ロール)の作成手順
- http://localhost/phpPgAdmin/ にアクセスする.
- データベースへの接続
左メニューの「PostgreSQL」をクリックし,データベース管理者のユーザ名とパスワードを入力してログインする.
- 「Roles(ロール)」をクリックする.
- 「Create role(ロールの作成)」をクリックする.
- 必要な情報を入力する.
Can login? オプションにチェック Rolename: testuser(ユーザ名) パスワード: hoge$#34hoge5 - 左メニューの「サーバー」をクリックしてログアウトする.
ブラウザの戻るボタンでログイン画面に戻ると,作成した testuser でログインできなくなる場合があるため注意する.
5. アクセス権限の設定
psql コマンドによる設定方法
psql コマンドを使い,testuser に対して testdb データベース内のテーブルへのアクセス権限を設定する.まずロールを作成する.
psql -U postgres -d testdb
create user "testuser" with password 'hoge$#34hoge5' nocreatedb nocreaterole;
\q
テーブル(例:commodity)に対して権限を付与する.
grant select, references, trigger
on table commodity
to testuser;
6. テーブル定義の管理
GUI でテーブル定義を作成できる.ただし,SQL を直接使用する方が効率的な場合が多い.
- 「テーブル」をクリックする.
- 「テーブルを作成する」をクリックする.
- テーブル名とカラム数を入力する.
- 「次に」をクリックする.
- カラム名と長さを設定する.
- データ型を選択する.
- 必要に応じて追加オプションを設定する.
- 「作成」をクリックする.
7. SQL クエリの編集と実行
SQL クエリを実行する機能を提供する.
- phpPgAdmin に,ユーザ名 testuser とパスワード hoge$#34hoge5 でログインする.
- 左メニューの対象データベース(例:testdb)をクリックする.
- 中央の「SQL」をクリックする.
- SQL クエリを入力し,「実行」ボタンをクリックする.
SQL の実行例を次に示す.
create table commodity (
id integer primary key not null,
name varchar(32) not null,
price integer );
insert into commodity values( 1, 'apple', 50 );
insert into commodity values( 2, 'orange', 20 );
insert into commodity values( 3, 'strawberry', 100 );
insert into commodity values( 4, 'watermelon', 150 );
insert into commodity values( 5, 'melon', 200 );
insert into commodity values( 6, 'banana', 100 );
select * from commodity;
実行結果の例:
id name price --- ---------- ----- 1 apple 50 2 orange 20 3 strawberry 100 4 watermelon 150 5 melon 200 6 banana 100
8. テーブルデータの管理(閲覧,追加,削除,更新)
テーブルデータの閲覧や編集を GUI で行える.データの追加は次の手順で行う.
- 「テーブル」をクリックする.
- 対象テーブルの「挿入」をクリックする.
- データを入力する.
- 「挿入」をクリックして確定する.
9. テーブルデータのエクスポート
テーブルデータを CSV 形式でエクスポートできる.対象テーブル名を右クリックし,「エクスポート」から CSV 形式を選択して実行する.