4.4. 仮想ディレクトリー情報ツリービュー
Directory Server は、仮想ディレクトリー情報ツリービュー をサポートします。仮想ビューは、エントリーを分類および検索するための標準のディレクトリーツリーに追加されるオプションの構造レイヤーです。
仮想ビューは、複数のバックエンドと完全に互換性があるわけではありません。検索は 1 つのバックエンドに制限されるため、仮想ビューが返すエントリーは同じバックエンドに存在する必要があります。
仮想 DIT ビューの詳細は、ビューを使用した仮想ディレクトリー階層の作成 を参照してください。
4.4.1. 仮想 DIT ビューの例
以下の LDIF エントリーは、ロケーションに基づいた仮想ビュー階層を示しています。dc=example,dc=com
の下に存在し、ビューの説明に適合するエントリーはすべて、場所ごとに整理されてこのビューに表示されます。
dn: ou=Location Views,dc=example,dc=com objectclass: top objectclass: organizationalUnit objectclass: nsView ou: Location Views description: views categorized by location dn: ou=Sunnyvale,ou=Location Views,dc=example,dc=com objectclass: top objectclass: organizationalUnit objectclass: nsView ou: Sunnyvale nsViewFilter: (l=Sunnyvale) description: views categorized by location dn: ou=Santa Clara,ou=Location Views,dc=example,dc=com objectclass: top objectclass: organizationalUnit objectclass: nsView ou: Santa Clara nsViewFilter: (l=Santa Clara) description: views categorized by location dn: ou=Cupertino,ou=Location Views,dc=example,dc=com objectclass: top objectclass: organizationalUnit objectclass: nsView ou: Cupertino nsViewFilter: (l=Cupertino) description: views categorized by location
ou=Location Views,dc=example,dc=com
に基づくサブツリー検索では、フィルター (l=Sunnyvale)
、(l=Santa Clara)
、または (l=Cupertino)
に一致する dc=example,dc=com
の下のすべてのエントリーが返されます。ただし、1 レベルの検索では、条件を満たすすべてのエントリーが 3 つの子孫ビューに存在するため、子ビューエントリー以外のエントリーは返されません。
ou=Location Views,dc=example,dc=com
ビューエントリーそのものには、フィルターが含まれていません。この機能は、ビューに含まれるエントリーをさらに制限する必要なしに、階層組織を容易にします。すべてのビューがフィルターを省略できます。
サンプルフィルターは非常に単純ですが、使用するフィルターは必要に応じて複雑にすることができます。ビューに含めるエントリーのタイプを制限できます。たとえば、この階層を person エントリーだけに限定するには、(objectclass=organizationalperson)
にフィルター値を指定して、nsfilter
属性を ou=Location Views,dc=example,dc=com
に追加します。
フィルターを含む各ビューは、すべての子孫のビューのコンテンツを制限し、フィルターが含まれる子孫のビューも祖先の内容を制限します。たとえば、前述の新しいフィルターと共に最上位ビュー ou=Location Views
を最初に作成すると、organization
オブジェクトクラスを持つすべてのエントリーが含まれるビューが作成されます。さらにエントリーを制限する子孫のビューが追加されると、子孫のビューに表示されているエントリーは、先祖のビューから削除されます。これは、仮想 DIT ビューが従来の DIT の動作をエミュレートする方法を示しています。
仮想 DIT ビューは従来の DIT の動作をエミュレートしますが、ビューは従来の DIT ができなかったことを実行できます。つまり、エントリーを複数のロケーションに表示できます。たとえば、Entry B
を Mountain View
および Sunnyvale
の両方に関連付けるには、ロケーション属性に Sunnyvale
値を追加すると、エントリーが両方のビューに表示されます。