« 豚カツ屋にて | Main | 確かに使い方は微妙かも »

2003.12.16

Access to Postgre DB from cgi with PHP

PHP初心者のメモと云うことでご笑納ください

実はCGIにおいてPostgresのデータベースを利用しようとしたとき一つの問題を抱えていました.それはユーザからのアクセス権限がhttpサーバの設定に依存してしましまうと云うことです.
これはどういう事かというと,Apacheとかのhttpサーバはクライアントからアクセスがあったときconfファイルの設定に従いアクセスユーザをnobody(誰でもないって?)とかwwwに設定します.したがって,cgiからDBをアクセスしようとしたときDB上のテーブルに対してnobodyとかwwwにgrantしてあげる必要があると思いこんでいました..
しかし,この構造はあまり美しくなく私としては非常に不本意でありました.
大きな声では言えませんが,PHPというかPostgreSQLを使うのは今回が初めてであり,多くの関数等は参考書に載っていたサンプルを基に作り上げた物のため,一部のモジュールについては機能を良く理解していなかったりしたのです.
答えは天啓のごとく突然やってきました.DBをアクセスするため一番はじめにDBをオープンする関数の中で引数としてユーザ名を指定できるという事実に思い至ったのです.作成してから1年あまり,あまりにシンプルな関数であり問題が無かったために見落としていましたが此処でユーザIDを指定してやればgrantすることなくDBをアクセスできるようになるのではないでしょうか?
早速,関数に引数を加え動作試験を実施してみました.どうやらうまくいったようです.
修正前 $conn_id = pg_connect($host, "", $dbname);
修正後 $conn_id = pg_connect("host=$host dbname=$dbname user=bbs");

|

« 豚カツ屋にて | Main | 確かに使い方は微妙かも »

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/2261/29525

Listed below are links to weblogs that reference Access to Postgre DB from cgi with PHP:

« 豚カツ屋にて | Main | 確かに使い方は微妙かも »