Windows (Windows Mobileを除く) または UNIX プラットフォーム上で動作している場合、中央 LDAP サーバを指定して企業内の全データベース・サーバを追跡できます。データベース・サーバ自体を LDAP サーバに登録する場合、クライアントは LDAP サーバに問い合わせてデータベース・サーバを検索できます。この場合、サーバが WAN 上、LAN 上、またはファイアウォールの外側にあっても検索できます。クライアントは、IP アドレス (HOST=) を指定する必要はありません。サーバ列挙ユーティリティ (dblocate) も LDAP サーバを使用してそのようなサーバを検索できます。
LDAP は TCP/IP とともに使用し、ネットワーク・データベース・サーバ上でのみ使用されます。
AIX 6 で SQL Anywhere 11 を使用するには、/usr/lib にリンクを作成するか、LDAP ライブラリが含まれるディレクトリが LIBPATH に含まれていることを確認し、LDAP のシステム・ライブラリが見つかるようにします。
ルート・ユーザで次のコマンドを実行します。
cd /usr/lib ln -s /opt/IBM/ldap/V6.1/lib64/libibmldap.a libibmldap64.a ln -s /opt/IBM/ldap/V6.1/lib/libibmldap.a |
ルート・ユーザで次のコマンドを実行して /usr/lib にリンクを作成します。
cd /usr/lib ln -s /opt/IBM/ldap/V6.1/lib64/libibmldap.a libibmldap64.a ln -s /opt/IBM/ldap/V6.1/lib/libibmldap.a |
LDAP ライブラリが含まれるディレクトリが LIBPATH に含まれていることを確認します。
たとえば、64 ビットのライブラリの場合は、次のように入力します。
export LIBPATH=/opt/IBM/ldap/V6.1/lib64:$LIBPATH |
たとえば、32 ビットのライブラリの場合は、次のように入力します。
export LIBPATH=/opt/IBM/ldap/V6.1/lib:$LIBPATH |
この機能を有効にするには、LDAP サーバの検索方法と接続方法に関する情報を含むファイルをデータベース・サーバ・コンピュータと各クライアント・コンピュータに作成してください。デフォルトで、このファイル名は saldap.ini ですが、これは設定可能です。このファイルがない場合、LDAP のサポートは何も通知されず無効になっています。
LDAP パラメータにファイルの完全なパスを指定していない場合、このファイルは SQL Anywhere 実行プログラムと同じディレクトリ (Windows の場合は install-dir\bin32 など) に置く必要があります。このファイルは、次のフォーマットになります。
[LDAP] server=computer-running-LDAP-server port=port-number-of-LDAP-server basedn=Base-DN authdn=Authentication-DN password=password-for-authdn search_timeout=age-of-timestamps-to-be-ignored update_timeout=frequency-of-timestamp-updates read_authdn=read-only-authentication-domain-name read_password=password-for-authdn |
ファイル難読化ユーティリティ (dbfhide) を使用して、単純暗号化によって saldap.ini ファイルの内容を難読化することができます。ファイル難読化ユーティリティ (dbfhide)を参照してください。
ファイルの名前が ldap.ini でない場合は、LDAP パラメータを使用してファイル名を指定する必要があります。
server LDAP サーバを実行中のコンピュータの名前または IP アドレス。この値は UNIX で必要です。このエントリが Windows にない場合、Windows がローカルのドメイン・コントローラで動作中の LDAP サーバを検索します。
port LDAP サーバで使用されるポート番号。デフォルトは 389 です。
basedn SQL Anywhere エントリが格納されているサブツリーのドメイン名。この値はデフォルトでツリーのルートになります。
authdn 認証ドメイン名。ドメイン名は、LDAP ディレクトリにある既存のユーザ・オブジェクトである必要があります。このディレクトリには basedn への書き込みアクセスがあります。これはデータベース・サーバで必要ですが、クライアントでは無視されます。
password authdn のパスワード。これはデータベース・サーバで必要ですが、クライアントでは無視されます。
search_timeout タイムスタンプがクライアントまたはサーバ列挙 (dblocate) ユーティリティで無視されるタイムスタンプの経過時間。値 0 はこのオプションを無効にして、すべてのエントリが現在のものと見なされます。デフォルト値は 600 秒 (10 分) です。
update_timeout LDAP ディレクトリ内のタイムスタンプの更新頻度。値として 0 を指定するとこのオプションは無効になり、データベース・サーバはタイムスタンプを更新しません。デフォルト値は 120 秒 (2 分) です。
read_authdn 読み取り専用の認証ドメイン名。ドメイン名は、LDAP ディレクトリにある既存のユーザ・オブジェクトを指定します。このディレクトリには basedn への読み取りアクセスがあります。このパラメータが必要なのは、検索の実行前に LDAP サーバで非匿名バインドが必要な場合だけです。たとえば、Active Directory が LDAP サーバとして使用されている場合、通常はこのフィールドが必要です。このパラメータが指定されていない場合、バインドは匿名になります。
read_password authdn のパスワード。クライアントにこのパラメータが必要なのは、read_authdn パラメータが指定されている場合だけです。
次に、saldap.ini ファイルの例を示します。
[LDAP] server=ldapserver basedn=dc=iAnywhere,dc=com authdn=cn=SAServer,ou=iAnywhereASA,dc=iAnywhere,dc=com password=secret |
エントリが iAnywhereASA と呼ばれる basedn のサブツリーに保管されます。このエントリは SQL Anywhere が LDAP を使用できるようになる前に作成します。サブツリーを作成するには、LDAPADD ユーティリティを使用します。次のような情報を提供します。
dn: ou=iAnywhereASA,basedn objectClass: organizationalUnit objectClass: top ou: iAnywhereASA |
サーバは、起動時に、LDAP ファイル内で同じ名前を持つ既存のエントリがないかどうかを確認します。そのようなエントリが見つかると、LDAP のロケーション・エントリと起動しようとしているデータベース・サーバとが一致した場合、または LDAP エントリのタイムスタンプ・フィールドが 10 分より前 (タイムアウト値は設定可能) の場合に、エントリは置き換えられます。
このいずれのエントリも該当しない場合、起動しようとしているデータベース・サーバと同じ名前の別のサーバが存在することになり、起動が失敗します。
LDAP のエントリを確実に最新のものにするために、データベース・サーバは LDAP エントリ内のタイムスタンプ・フィールドを 2 分ごとに更新します。エントリのタイムスタンプが 10 分以上古い場合、クライアントは LDAP エントリを無視します。これらの設定はいずれも変更可能です。
クライアントでは、ブロードキャストを実行する前に LDAP ディレクトリが検索されるので、データベース・サーバが見つかるとブロードキャストは送信されません。LDAP 検索は非常に高速なので、失敗しても認識できるほどの遅延は発生しません。
サーバ列挙ユーティリティ (dblocate) も LDAP を使用します。LDAP にリストされているすべてのデータベース・サーバが、返されるデータベース・サーバのリストに追加されます。これにより、サーバ列挙ユーティリティ (dblocate) が、たとえばブロードキャストが到達しなかったデータベース・サーバなど、通常どおりに返されなかったサーバをリストします。10 分以上古いタイムスタンプを持つエントリは含まれません。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |