Schéma služby AD LDS (Active Directory Lightweight Directory Services) definuje pomocí tříd a atributů objektů typy objektů a dat, které lze vytvořit a uložit v adresáři služby AD LDS. Každá konfigurační sada služby AD LDS obsahuje vlastní schéma s možností samostatné správy, které je uloženo v oddílu adresáře schématu. Z důvodu zachování jednoduchosti a pružnosti služby AD LDS obsahuje základní (neboli výchozí) schéma služby AD LDS pouze třídy a atributy, které jsou nezbytné ke spuštění instance služby AD LDS. Správce může rozšířit schéma o nové třídy a atributy; toto rozšíření lze provést také prostřednictvím aplikací samotných. Nepotřebné třídy a atributy schémat lze deaktivovat. Stejně jako všechny objekty v adresáři jsou i objekty schématu chráněny seznamy řízení přístupu, takže změny schématu mohou provádět pouze oprávnění uživatelé. Každý objekt v adresáři služby AD LDS představuje instanci třídy objektu, která je definována ve schématu, jak je znázorněno na následujícím obrázku.
Třídy objektů
Třída objektu představuje kategorii objektů, například uživatele, tiskárny či aplikace, které sdílejí sadu společných vlastností. Definice jednotlivých tříd objektů obsahuje seznam atributů, které je možné použít k popisu instancí třídy. Třída User například obsahuje atributy givenName, surname a streetAddress. Seznam atributů třídy je rozdělen na atributy, které objekt dané třídy musí obsahovat, a na další atributy, které daný objekt může obsahovat. Definice jednotlivých tříd obsahují také seznam tříd, jejichž objekty mohou být nadřazeny objektům dané třídy.
Jako příklad je v následující tabulce uvedena definice třídy User služby AD LDS.
Atribut | Hodnota |
---|---|
Dn |
CN=User,CN=Schema,CN=Configuration |
objectClass |
top; classSchema; |
cn |
User; |
distinguishedName |
CN=User,CN=Schema,CN=Configuration; |
subClassOf |
organizationalPerson; |
mayContain |
audio; carLicense; departmentNumber; displayName; employeeNumber; employeeType; givenName; homePostalAddress; jpegPhoto; labeledURI; photo; preferredLanguage; roomNumber; secretary; uid; userPKCS12; userSMIMECertificate; x500uniqueIdentifier; |
rDNAttID |
cn; |
adminDisplayName |
User; |
adminDescription |
User; |
objectClassCategory |
1; |
lDAPDisplayName |
user; |
name |
User; |
objectGUID |
dac9093a-d2aa-408a-81bb-0fe8179165da; |
schemaIDGUID |
bf967aba-0de6-11d0-a285-00aa003049e2; |
objectCategory |
CN=Class-Schema,CN=Schema,CN=Configuration; |
defaultObjectCategory |
CN=Person,CN=Schema,CN=Configuration; |
Atributy
Schéma také definuje jednotlivé atributy. Definice jednotlivých atributů obsahují jedinečné identifikátory atributu, syntaxi atributu, nepovinné omezení rozsahu hodnot atributu, informace, zda může atribut obsahovat pouze jednu hodnotu či více hodnot, a informace, zda je atribut indexován. Schéma adresáře definuje každý atribut pouze jednou. Na každý atribut pak může odkazovat více tříd objektů. Atribut description je například jednou definován a potom na něj odkazuje mnoho tříd objektů.
V následující tabulce je znázorněna definice atributu telephone number, který představuje typický atribut schématu.
Atribut | Hodnota |
---|---|
objectClass |
top; attributeSchema; |
cn |
Telephone-Number; |
distinguishedName |
CN=Telephone-Number,CN=Schema,CN=Configuration; |
instanceType |
0x4 = ( IT_WRITE ); |
whenCreated |
11/12/2002 13 |
22 |
14 Pacific Standard Time Pacific Daylight Time; |
whenChanged |
11/12/2002 13 |
22 |
14 Pacific Standard Time Pacific Daylight Time; |
uSNCreated |
217; |
attributeID |
2.5.4.20; |
attributeSyntax |
2.5.5.12; |
isSingleValued |
TRUE; |
rangeLower |
1; |
rangeUpper |
64; |
uSNChanged |
217; |
showInAdvancedViewOnly |
TRUE; |
adminDisplayName |
Telephone-Number; |
adminDescription |
Telephone-Number; |
oMSyntax |
64; |
searchFlags |
0; |
lDAPDisplayName |
telephoneNumber; |
name |
Telephone-Number; |
objectGUID |
bf19d7eb-ea0f-4f2d-af67-f439a037d8a4; |
schemaIDGUID |
bf967a49-0de6-11d0-a285-00aa003049e2; |
attributeSecurityGUID |
77b5b886-944a-11d1-aebd-0000f80367c1; |
systemOnly |
FALSE; |
systemFlags |
0x10 = ( FLAG_SCHEMA_BASE_OBJECT ); |
isMemberOfPartialAttributeSet |
TRUE; |
objectCategory |
CN=Attribute-Schema,CN=Schema,CN=Configuration; |
Jednohodnotové a vícehodnotové atributy
Atributy mohou být jednohodnotové nebo vícehodnotové. Instance jednohodnotového atributu může obsahovat pouze jedinou hodnotu. Instance vícehodnotového atributu může obsahovat více hodnot, které musejí používat stejnou syntaxi. Každá hodnota vícehodnotového atributu musí být jedinečná.
Poznámka | |
Vícehodnotový atribut ukládá hodnoty v náhodném pořadí. Proto není vhodné provádět žádné rozhodování týkající se adresářů (programované či ruční) na základě pořadí hodnot ve vícehodnotovém atributu. |
Indexované atributy
Indexování atributů přispívá k vylepšení výkonu dotazů, které jsou založeny na indexovaném atributu. Indexovat lze jednohodnotové i vícehodnotové atributy; třídy indexovat nelze. Atributy můžete označit pro indexování pomocí definice jejich schématu. Díky indexování atributů je také možné používat zástupné znaky (*) jako předpony a přípony při zadávání vyhledávacího řetězce. Jestliže označíte atribut jako indexovaný, budou do indexu přidány všechny instance daného atributu, a nikoli pouze instance, které jsou členy konkrétní třídy. Indexování atributů, zejména pak vícehodnotových atributů, může negativně ovlivnit dobu replikace a vytváření objektů a také velikost databáze adresářů. Proto by měly být indexovány pouze běžně používané atributy.
Obecné informace o schématech získáte v článku o schématu služby Active Directory (