Az Active Directory Lightweight Directory-szolgáltatások (AD LDS) sémája objektumosztályok és attribútumok segítségével definiálja az AD LDS címtárában létrehozható és tárolható objektumok és adatok típusát. Az egyes AD LDS-konfigurációkészletek saját, egymástól függetlenül kezelhető sémával rendelkeznek, amelyeket a séma-címtárpartíció tárol. Az AD LDS kialakításának azon elveivel összhangban, amelyek az egyszerűséget és a rugalmasságot tartják szem előtt, az alapértelmezett AD LDS-séma csak az AD LDS-példány elindításához szükséges osztályokat és attribútumokat tartalmazza. A sémát a rendszergazdák vagy maguk az alkalmazások is új osztályokkal és attribútumokkal bővíthetik. A szükségtelenné vált sémaosztályok és attribútumok ugyanakkor inaktiválhatók. Mint a címtár minden más objektumát, a sémaobjektumokat is hozzáférési szabálygyűjtemények védik, így csak jogosult felhasználók módosíthatják a sémát. Az AD LDS címtárában lévő összes objektum a sémában definiált egyik objektumosztály példánya, miként az az alábbi ábrán látható.
Objektumosztályok
Az objektumosztályok objektumkategóriáknak felelnek meg. Ilyen objektumkategóriák a felhasználók, a nyomtatók vagy az alkalmazások, amelyek számos közös tulajdonsággal rendelkeznek. Az objektumosztályok definíciói olyan attribútumokat tartalmaznak, amelyek segítségével leírhatók az osztály példányai. A User osztály attribútumai például a givenName, a surname és a streetAddress. Egy adott osztály attribútumai két csoportra oszthatók: az egyik csoport tagjait az osztályba tartozó objektumoknak kötelező tartalmazniuk, míg a másik csoportba tartozókat az objektumok nem kötelezően tartalmazhatják. Az egyes osztályok definíciója azt is magában foglalja, hogy mely objektumok lehetnek más objektumok szülőobjektumai az adott osztályban.
Az alábbi táblázatban például az AD LDS User osztályának definíciója látható.
Attribútum | Érték: |
---|---|
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; |
Attribútumok
A séma az egyes attribútumokat is definiálja. Az attribútumok definíciója tartalmazza azok egyedi azonosítóját, szintaxisát, értékeinek lehetséges tartományát, továbbá azt, hogy az adott attribútum csak egy értéket vehet-e fel, vagy többet, illetve hogy az attribútum indexelt-e. A címtár sémája minden attribútumot mindössze egyszer definiál. Ezután az attribútumokra több objektumosztály is hivatkozhat. A description attribútum például csak egyszer van definiálva, de számtalan objektumosztály hivatkozik rá.
Az alábbi táblázat egy jellegzetes sémaattribútum, a telephone number definícióját tartalmazza.
Attribútum | Érték |
---|---|
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; |
Egyértékű és többértékű attribútumok
Az attribútumok egyértékűek vagy többértékűek lehetnek. Az egyértékű attribútum példánya csak egy értéket tartalmazhat. A többértékű attribútum példánya több értéket tartalmazhat, amelyeket azonos szintaxissal kell megadni. A többértékű attribútum minden értékének egyedinek kell lennie.
Megjegyzés | |
A többértékű attribútum az értékeit véletlenszerű sorrendben tárolja. Ennélfogva nem szabad olyan címtárműveletet végrehajtani (programozás útján vagy kézzel), amely egy többértékű attribútum értékeinek sorrendjén alapul. |
Indexelt attribútumok
Az attribútumok indexelése révén növelheti az indexelt attribútumokra alapozott lekérdezések teljesítményét. Mind az egyértékű, mind a többértékű attribútumok indexelhetők; az osztályok nem indexelhetők. Az attribútumok indexelésre megjelölhetők a sémadefiníción keresztül. Az indexelés azt is lehetővé teszi, hogy karakterlánc keresésekor a felhasználók helyettesítőket (*) használjanak előtagként és utótagként. Ha indexeltként jelöl meg egy attribútumot, az attribútum összes példánya hozzáadódik az indexhez, nem csak azok a példányok, amelyek egy bizonyos osztály tagjai. Az attribútumok indexelése, különösen a többértékű attribútumoké, hátrányos hatással lehet a replikáció időtartamára, az objektumok létrehozásának idejére, valamint a címtáradatbázis méretére. Ezért csak általánosan használt attribútumokat célszerű indexelni.
A sémákról bővebben az „Active Directory-séma” című dokumentumban olvashat (