スキーマの実装
Active Directory ドメイン Services では、クラス定義と属性定義はそれぞれ classSchema クラスと attributeSchema クラスのインスタンスとしてディレクトリに格納されます。 classSchema と attributeSchema は、スキーマで定義されているクラスです。 Active Directory スキーマを操作するには、他のオブジェクトの操作に使用するのと同じ LDAP 操作を使用します。 スキーマは、フォレスト全体に影響するディレクトリの重要な部分であるため、スキーマ拡張機能には特別な制限が適用されます。 制限の詳細については、「スキーマ拡張の制限」を参照してください。
スキーマの実装を要約するには、次の手順を実行します。
classSchema クラスのインスタンスは、Active Directory ドメイン Services でサポートされるすべてのオブジェクト クラスを定義します。 classSchema オブジェクトの属性 (例: mayContain 属性と mustContain 属性) は、ユーザー オブジェクトの属性 (userPrincipalName 属性や telephoneNumber 属性など) がそのユーザーを記述するのと同じ方法でオブジェクト クラスを記述します。 詳細については、オブジェクトクラスの特性を参照してください。
attributeSchema クラスのインスタンスは、Active Directory ドメイン Services でサポートされるすべての属性を定義するために使用されます。 attributeSchema オブジェクトの属性 (たとえば、attributeSyntax 属性と isSingleValued 属性) は、ユーザー オブジェクトの属性がそのユーザーを記述するのと同じ方法で属性を記述します。 詳細については、「属性の特性」を参照してください。
attributeSchema クラスと classSchema クラスのインスタンスは、スキーマ コンテナーであるディレクトリ内の既知の場所に格納されます。 スキーマ コンテナーには、常に次の形式の識別名があります。
CN=Schema,CN=Configuration,<DC=forestroot>
ここで、"<DC=forestroot>" はフォレストのルートの識別名です (例: "DC=Fabrikam,DC=Com")。
スキーマ コンテナーの識別名を取得するには、rootD Standard Edition の schemaNamingContext 属性を読み取ります。 rootD Standard Editionとその属性の詳細については、「サーバーレス バインディングと RootD Standard Edition」を参照してください。
スキーマについて考えるときは、次の点に注意してください。
- スキーマの変更はグローバルです。 フォレスト全体に対して 1 つのスキーマがあります。 スキーマはグローバルにレプリケートされます。スキーマのコピーは、フォレスト内のすべての doメイン コントローラーに存在します。 スキーマを拡張する場合は、フォレスト全体に対して行います。
- スキーマの追加は元に戻すことはできません。 新しいクラスまたは属性をスキーマに追加すると、削除できません。 既存の属性またはクラスは無効にできますが、削除することはできません。 詳細については、「既存のクラスと属性の無効化」を参照してください。
- クラスまたは属性を無効にしても、クラスまたは属性の既存のインスタンスには影響しませんが、新しいインスタンスが作成されなくなります。 無効にされていないクラスに属性が含まれている場合、その属性を無効にすることはできません。