作成したデータベースのテーブルをWeb上で見るためには、Apacheのデフォルトユーザであるnobody
をデータベースに登録し、テーブルを操作する権限を与える必要がある。
例えばyubin_tabテーブルの参照(Select)権を与えるには次のように行う。
- 1.postgresユーザでログイン
- データベースに対しての操作を行うので、rootではなくpostgresユーザでログインする。
- 2.nobodyユーザの登録
nobodyユーザをデータベースに登録する。
# createuser nobody - 3.データベースSampleDBに接続
- psqlでSampleDBに接続する。
# psql SampleDB - 4.現在の権限の設定を確認する
- 現在の権限の設定を確認する。\zコマンドを使用する。
これにより、yubin_tabテーブルには何も権限がついてないことが分かる。
SampleDB=>\zDatabase = SampleDB +-----------+--------------------------+ | Relation | Grant/Revoke Permissions | +-----------+--------------------------+ | yubin_tab | | +-----------+--------------------------+ SampleDB=>- 5.権限の設定
- nobodyユーザに、yubin_tabテーブルのselect権限を付与する。SQLコマンドのgrant命令を使用する。
SampleDB=> grant select on yubin_tab to nobody;
CHANGE←権限が変更された- 6.確認
- 正しく設定されたかどうかを確認する。
これにより、
SampleDB=>\zDatabase = SampleDB +-----------+--------------------------+ | Relation | Grant/Revoke Permissions | +-----------+--------------------------+ | yubin_tab |{"=","nobody=r"}| +-----------+--------------------------+ SampleDB=>nobodyユーザにr(select)権限が付加されたことが分かる。上記の設定により、Web上からyubin_tabテーブルを参照することが可能になる。
PHPでテーブルの参照を行うプログラムを作って確認しよう。作り方は別のページで解説する。当然、select権限しか与えていないため、Web上からは追加(insert)や削除(delete)はできない。それらを行いたい場合は、同じようにgrant命令でそれぞれの権限を付加する。
付加した権限をはずしたい場合は、
revoke命令を使用する。例えば「nobodyユーザからyubin_tabテーブルのselect権限を取り消す」には、次のように行う。
SampleDB=> revoke select on yubin_tab from nobody; ※grant命令とは違い、「to」が「from」に変わっていることに注意!!
これで、Active Server Pageを作成する準備が整った。あとはPHPを設定すれば、晴れてWebDBシステムが開発できるようになる。