-
Language:
日本語
-
Language:
日本語
Red Hat Training
A Red Hat training course is available for Red Hat Directory Server
4.2.4. エントリーおよびサブツリーの名前変更
「エントリーの命名」では、Red Hat Directory Server でエントリーの命名が重要であることについて説明します。エントリー名は、ある意味ディレクトリーツリーの構造を定義します。各分岐点 (その下にエントリーがあるエントリー) は、階層に新しいリンクを作成します。
例4.1 エントリー DN のビルド
dc=example,dc=com => root suffix ou=People,dc=example,dc=com => org unit st=California,ou=People,dc=example,dc=com => state/province l=Mountain View,st=California,ou=People,dc=example,dc=com => city ou=Engineering,l=Mountain View,st=California,ou=People,dc=example,dc=com => org unit uid=jsmith,ou=Engineering,l=Mountain View,st=California,ou=People,dc=example,dc=com => leaf entry
エントリーの命名属性 (DN の左端にある要素) が変更されると、これは modrdn 操作 になります。ディレクトリーツリー内のエントリーを移動するため、ある意味特別な変更操作です。リーフエントリー (子を持たないエントリー) の場合、modrdn 操作は横方向の移動です。エントリーは同じ親を持ち、名前が新しいだけです。
図4.10 リーフエントリーに対する modrdn 操作
サブツリーエントリーの場合、modrdn 操作はサブツリーエントリー自体の名前を変更するだけでなく、サブツリーの 下にある すべての子エントリーの DN コンポーネントも変更します。
図4.11 サブツリーエントリーに対する modrdn 操作
重要
サブツリーの modrdn 操作も、サブツリーエントリーの下にあるすべての子エントリーを移動し、名前を変更します。サブツリーが大きい場合、これは時間とリソースを必要とするプロセスになります。ディレクトリーツリー階層の命名構造を計画し、サブツリーの名前変更操作が頻繁に要求されないようにします。
サブツリーの名前を変更する同様のアクションは、エントリーをあるサブツリーから別のサブツリーに移動することです。これは modrdn 操作の拡張タイプのもので、同時にエントリーの名前を変更し (同じ名前の場合でも)、ある親から別の親にエントリーを移動する
newsuperior
属性を設定します。
図4.12 新しい親エントリーに対する modrdn 操作
エントリーが
entryrdn.db
インデックスに格納される方法により、新規の親およびサブツリー両方の名前を変更する操作が可能です。各エントリーは、独自のキー (自己リンク) で、続いてその親 (親リンク) と子を特定するサブキーで識別されます。これには、親と子をエントリーに対する属性として処理することでディレクトリーツリー階層を配置する形式があり、すべてのエントリーが完全な DN ではなく一意の ID とその RDN によって記述されます。
numeric_id:RDN => self link ID: #; RDN: "rdn"; NRDN: normalized_rdn P#:RDN => parent link ID: #; RDN: "rdn"; NRDN: normalized_rdn C#:RDN => child link ID: #; RDN: "rdn"; NRDN: normalized_rdn
たとえば、ou=people サブツリーは、親の dc=example,dc=com と子の uid=jsmith を持ちます。
4:ou=people ID: 4; RDN: "ou=People"; NRDN: "ou=people" P4:ou=people ID: 1; RDN: "dc=example,dc=com"; NRDN: "dc=example,dc=com" C4:ou=people ID: 10; RDN: "uid=jsmith"; NRDN: "uid=jsmith"
名前変更操作を実行する際に留意すべき事項があります。
- root 接尾辞の名前を変更することはできません。
- サブツリー名前変更操作によるレプリケーションへの影響は最小限に抑えられます。レプリカ合意は、データベースのサブツリーではなく、データベース全体に適用されます。したがって、サブツリーの名前変更操作ではレプリカ合意の再設定は必要ありません。サブツリーの名前変更操作後のすべての名前の変更は、通常どおり複製されます。
- サブツリーの名前を変更し、同期合意を再設定する必要がある 場合があります。同期合意は、接尾辞またはサブツリーレベルで設定されるため、サブツリーの名前を変更すると、同期が破損してしまう可能性があります。
- サブツリーの名前を変更するには、サブツリーに設定されたサブツリーレベルの ACI を手動で再設定し、サブツリーの子エントリーに設定されたエントリーレベルの ACI (エントリーレベルの ACI) を手動で再設定する 必要があります。
- 子を持つサブツリーの名前を変更できますが、子を持つサブツリーを削除できません。
ou
からdc
への移行など、サブツリーのコンポーネントを変更しようとすると、スキーマ違反で失敗する可能性があります。たとえば、organizationalUnit オブジェクトクラスにはou
属性が必要です。サブツリーの名前変更の一部としてその属性を削除すると、操作は失敗します。