[pgsql-jp: 27593] Re: pg_ctl と OS 起動時のpassword 要求について
HIROSHI OOTA
oota @ LSi.nec.co.jp
2002年 10月 9日 (水) 17:00:54 JST
太田です。
;; 1つのマシンにApacheとPostgreSQLが同居してます。
;; Apacheでは、PHPを動かしていますが、スクリプトを書く人は複数で、DBやコン
;; テンツも複数あるとします。お互いになるべくセパレートしたいと思っています。
なるべくというのが不明確ですが、例えば社内ユーザ間で共有していて誤った操作
を防止するためというならばQ1の方法でもいいかと思います。
悪意のユーザの存在が否定できないならば、apacheのバーチャルホストでホスト
毎に異なるユーザにする以外の方法は僕は信用しません。 :-)
;; Q1.
;; ---
;; FreeBSDの場合、Portsでインストールすると、Apacheはwww:wwwで動作しますが、
;; pg_hba.confを
;;
;; local all ident sameuse
;; host all 127.0.0.1 255.255.255.255 crypt
;;
;; と設定し、wwwというPostgreSQLユーザーを作らない用にすれば、PHPスクリプト
;; からDBにアクセスするのは、localhost指定で、ユーザー名・パスワードを指定
;; しないとアクセスできないということでしょうか
;; (UNIXドメイン経由だと、PHPスクリプトはWebサーバーのuidでPostgreSQLに接続
;; することが強制されるのですよね)。
その通りです。
他の方法としては、送られてきたユーザ方法をファイルを参照してPostgreSQLユーザに
マップするという事も出来るはずなので、wwwをマップしてやらないという方法でもお望み
の動作が実現できると思います。(やったことはありません)
設定方法はpg_hba.confに記述されています。
;; Q2.
;; ---
;; これは、UNIXドメインだけでidentを使うのならば、特にauth(ident)サービスを
;; /etc/inetd.conf等で上げなくても良いという理解でよろしいでしょうか?
石井さんへの返信で書きましたが、不要です。
--
HIROSHI OOTA
oota @ LSi.nec.co.jp
pgsql-jp メーリングリストの案内