作成したデータベースのテーブルをWeb上で見るためには、nobodyユーザにテーブルの 権限を与える必要がある。
例えばyubin_tabテーブルの参照(Select)権を与えるには次のように行う。
データベースに対しての操作を行うので、rootではなくpostgresユーザでログインする。
psqlでSampleDBに接続する。
| # psql SampleDB |
現在の権限の設定を確認する。\zコマンドを使用する。
SampleDB=> \z Database = SampleDB +-----------+--------------------------+ | Relation | Grant/Revoke Permissions | +-----------+--------------------------+ | yubin_tab | | +-----------+--------------------------+ SampleDB=>
これにより、yubin_tabテーブルには何も権限がついてないことが分かる。
nobodyユーザに、yubin_tabテーブルのselect権限を付ける。
SQLコマンドのgrant命令を使用する。
| SampleDB=> grant select on yubin_tab to nobody; |
| CHANGE |
権限の設定が変更されると、CHANGEと表示される。正しく設定されたかどうかを 確認する。
SampleDB=> \z
Database = 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システムが開発できるようになる。