Schemat usług LDS w usłudze Active Directory (AD LDS, Active Directory Lightweight Directory Services) definiuje typy obiektów i danych, jakie mogą być tworzone i przechowywane w katalogu usług LDS w usłudze AD. Definicje są określane za pomocą klas i atrybutów obiektów. Każdy zestaw konfiguracyjny usług LDS w usłudze AD ma własny, niezależnie zarządzany schemat przechowywany w partycji katalogu schematu. Usługi LDS w usłudze AD zaprojektowano z myślą o jak największej prostocie i elastyczności. Z tego względu podstawowy (domyślny) schemat usług LDS w usłudze AD zawiera wyłącznie klasy i atrybuty niezbędne do uruchomienia wystąpienia tych usług. Administratorzy i aplikacje mogą rozszerzać schemat, dodając do niego nowe klasy i atrybuty. Można także dezaktywować niepotrzebne klasy i atrybuty zawarte w schemacie. Podobnie jak inne obiekty w katalogu, obiekty schematu są chronione przez listy kontroli dostępu (ACL), dzięki czemu tylko autoryzowani użytkownicy mogą modyfikować schemat. Każdy obiekt w katalogu usług LDS w usłudze AD jest wystąpieniem klasy obiektu zdefiniowanej w schemacie, co przedstawiono na poniższej ilustracji.
Klasy obiektów
Klasa obiektów reprezentuje kategorię obiektów katalogu, na przykład użytkowników, drukarki czy aplikacje, które mają wspólny zestaw właściwości. Definicja każdej klasy obiektów zawiera listę atrybutów, za pomocą których można opisywać wystąpienia klasy. Na przykład klasa Użytkownik ma atrybuty takie jak imię, nazwisko oraz adres. Niektóre atrybuty klasy są wymagane, co oznacza, że obiekt danej klasy musi je zawierać, a inne atrybuty są opcjonalne. Definicja każdej klasy zawiera także listę klas, których obiekty mogą być obiektami nadrzędnymi obiektów danej klasy.
W poniższej tabeli przedstawiono przykładową definicję klasy usług LDS w usłudze AD Użytkownik.
Atrybut | Wartość |
---|---|
Dn |
CN=Użytkownik,CN=Schema,CN=Configuration |
objectClass: |
top; classSchema; |
cn |
Użytkownik; |
distinguishedName |
CN=Użytkownik,CN=Schema,CN=Configuration; |
subClassOf |
organizationalPerson; |
mayContain |
dźwięk; prawoJazdy; numerWydziału; wyświetlanaNazwa; numerPracownika; typPracownika; imię; adresDomowy; zdjęcieJpeg; identyfikatorURI; zdjęcie; preferowanyJęzyk; numerPokoju; sekretarka; uid; certyfikatPKCS12; certyfikatSMIME; unikatowyIdentyfikatorx500; |
rDNAttID |
cn; |
adminDisplayName |
Użytkownik; |
adminDescription |
Użytkownik; |
objectClassCategory |
1; |
lDAPDisplayName |
użytkownik; |
name |
Użytkownik; |
objectGUID |
dac9093a-d2aa-408a-81bb-0fe8179165da; |
schemaIDGUID |
bf967aba-0de6-11d0-a285-00aa003049e2; |
objectCategory |
CN=Class-Schema,CN=Schema,CN=Configuration; |
defaultObjectCategory |
CN=Osoba,CN=Schema,CN=Configuration; |
Atrybuty
W schemacie są także zdefiniowane wszystkie atrybuty. Definicja każdego atrybutu obejmuje unikatowe identyfikatory atrybutu, jego składnię i opcjonalne ograniczenia zakresu wartości, a także określa, czy atrybut może mieć jedną czy wiele wartości oraz czy atrybut jest indeksowany. Każdy atrybut jest zdefiniowany w schemacie katalogu jeden i tylko jeden raz. Wiele klas obiektów może odwoływać się do tego samego atrybutu. Na przykład atrybut opis jest zdefiniowany tylko raz, a wiele klas obiektów używa odwołań do niego.
W poniższej tabeli przedstawiono definicję atrybutu numer telefonu - typowego atrybutu zdefiniowanego w schemacie.
Atrybut | Wartość |
---|---|
objectClass |
top; attributeSchema; |
cn |
Numer-Telefonu; |
distinguishedName |
CN=Numer-Telefonu,CN=Schema,CN=Configuration; |
instanceType |
0x4 = ( IT_WRITE ); |
whenCreated |
11/12/2002 13 |
22 |
14 Pacyficzny czas standardowy; |
whenChanged |
11/12/2002 13 |
22 |
14 Pacyficzny czas standardowy; |
uSNCreated |
217; |
attributeID |
2.5.4.20; |
attributeSyntax |
2.5.5.12; |
isSingleValued |
PRAWDA; |
rangeLower |
1; |
rangeUpper |
64; |
uSNChanged |
217; |
showInAdvancedViewOnly |
PRAWDA; |
adminDisplayName |
Numer-Telefonu; |
adminDescription |
Numer-Telefonu; |
oMSyntax |
64; |
searchFlags |
0; |
lDAPDisplayName |
numerTelefonu; |
name |
Numer-Telefonu; |
objectGUID |
bf19d7eb-ea0f-4f2d-af67-f439a037d8a4; |
schemaIDGUID |
bf967a49-0de6-11d0-a285-00aa003049e2; |
attributeSecurityGUID |
77b5b886-944a-11d1-aebd-0000f80367c1; |
systemOnly |
FAŁSZ; |
systemFlags |
0x10 = ( FLAG_SCHEMA_BASE_OBJECT ); |
isMemberOfPartialAttributeSet |
PRAWDA; |
objectCategory |
CN=Attribute-Schema,CN=Schema,CN=Configuration; |
Atrybuty jedno- i wielowartościowe
Atrybuty mogą być jedno- lub wielowartościowe. Wystąpienie atrybutu jednowartościowego może zawierać tylko jedną wartość. Wystąpienie atrybutu wielowartościowego może zawierać wiele wartości, przy czym wszystkie wartości muszą używać tej samej składni. Każda wartość atrybutu wielowartościowego musi być unikatowa.
Uwaga | |
Wartości atrybutu wielowartościowego są przechowywane w losowej kolejności. Z tego względu przy ręcznym lub automatycznym przetwarzaniu katalogu nie należy podejmować żadnych decyzji na podstawie kolejności wartości atrybutu wielowartościowego. |
Atrybuty indeksowane
Indeksowanie atrybutów zwiększa wydajność zapytań opartych na atrybucie indeksowanym. Zarówno jedno- jak i wielowartościowe atrybuty mogą być indeksowane; nie można natomiast indeksować klas. Atrybuty są oznaczane jako indeksowane w ich definicjach w schemacie. Indeksowanie atrybutu pozwala również użytkownikom na używanie symboli wieloznacznych (*) jako prefiksów i sufiksów przy określaniu ciągów do wyszukania. Po zaznaczeniu atrybutu jako indeksowanego do indeksu są dodawane wszystkie wystąpienia danego atrybutu, a nie tylko wystąpienia, które są elementami określonej klasy. Indeksowanie atrybutów, szczególnie atrybutów wielowartościowych, może negatywnie wpłynąć na czas trwania replikacji i tworzenia obiektów, a także na rozmiar bazy danych katalogu. Z tego względu należy indeksować tylko często używane atrybuty.
Aby uzyskać ogólne informacje na temat schematów, zobacz stronę dotyczącą schematu usług Active Directory (