無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

31.17. 接続パラメータのLDAP検索

libpq がLDAPサポート( configure 時の --with-ldap オプション)付きでコンパイルされている場合、中央サーバからLDAPを通して host dbname などの接続オプションを取り出すことができます。 この利点は、データベースの接続パラメータが変わった場合に、すべてのクライアントマシンで接続情報を更新しなくても済む点です。

LDAP接続パラメータ検索は、 pg_service.conf という接続サービスファイル( 項31.16 を参照)を使用します。 pg_service.conf 内の ldap:// から始まる行は、LDAP URLとして認識され、LDAP問い合わせが実行されることを示します。 その結果は、 keyword = value という組み合わせのリストでなければなりません。 これらが接続用オプションの設定に使用されます。 このURLはRFC 1959に従ったもので、以下のような形式でなければなりません。

ldap://[

hostname

[:

port

]]/

search_base

?

attribute

?

search_scope

?

filter

ここで、 hostname のデフォルトは localhost port のデフォルトは389です。

pg_service.conf の処理はLDAP検索が成功した時に終わります。 しかし、もしLDAPサーバへのアクセスができなかった場合は継続します。 これはアクセスに失敗した時に、異なるLDAPサーバを指し示す他のLDAP行や以前からの keyword = value の組み合わせ、デフォルトの接続オプションを参照する予備機能を提供します。 この場合にエラーメッセージを受け取りたい場合は、LDAP URL行の後に文法的に不正な行を記載してください。

LDIFファイルとして作成されたLDAP項目の例を以下に示します。

version:1
dn:cn=mydatabase,dc=mycompany,dc=com
changetype:add
objectclass:top
objectclass:groupOfUniqueNames
cn:mydatabase
uniqueMember:host=dbserver.mycompany.com
uniqueMember:port=5439
uniqueMember:dbname=mydb
uniqueMember:user=mydb_user
uniqueMember:sslmode=require

これは、以下のようなLDAP URLから得られます。

ldap://ldap.mycompany.com/dc=mycompany,dc=com?uniqueMember?one?(cn=mydatabase)

また、LDAP検索と通常のサービスファイル項目とを混在させることもできます。 pg_service.conf の一節について完全な例を以下に示します。

# only host and port are stored in LDAP, specify dbname and user explicitly
[customerdb]
dbname=customer
user=appuser
ldap://ldap.acme.com/cn=dbserver,cn=hosts?pgconnectinfo?base?(objectclass=*)


powered by SEO.CUG.NET