Ett AD LDS-schema (Active Directory Lightweight Directory Services) definierar, med hjälp av objektklasser och attribut, olika typer av objekt och data som kan skapas och sparas i en AD LDS-katalog. Varje AD LDS-konfigurationsuppsättning har sitt eget oberoende schema, som är sparat i schemakatalogpartitionen. I enlighet med den enkla och flexibla utformningen av AD LDS, innehåller basschemat (eller standardschemat) i AD LDS endast de klasser och attribut som behövs för att starta en AD LDS-instans. Schemat kan utvidgas med nya klasser och attribut, antingen av administratörer eller av programmen själva. Dessutom kan onödiga schemaklasser och attribut inaktiveras. Liksom alla andra objekt i katalogen skyddas schemaobjekten av åtkomstkontrollistor (ACL) så att endast behöriga användare kan ändra schemat. Varje objekt i en AD LDS-katalog är en instans av en objektklass som definieras i ett schema, som visas i följande illustration.
Objektklasser
En objektklass representerar en kategori objekt, till exempel användare, skrivare eller program, som delar en uppsättning gemensamma kännetecken. Definitionen av varje objektklass innehåller en lista med attribut som kan användas för att beskriva klassens instanser. Klassen Användare har till exempel attributen givenName, surname och streetAddress. Listan med attribut för en klass är uppdelad mellan de attribut som ett objekt i den klassen måste innehålla och ytterligare attribut som ett objekt kan innehålla. Definitionen av varje klass innehåller också en lista med klasser vars objekt kan vara överordnade andra objekt i en viss klass.
Följande lista visar till exempel definitionen för Användar-klassen i AD LDS.
Attribut | Värde |
---|---|
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; |
Attribut
Schemat definierar också varje attribut. Definitionen av varje attribut innefattar unika ID:n för attributet, attributets syntax, valfria intervallbegränsningar för attributvärdena, huruvida attibutet kan ha endast ett värde eller flera värden samt om attributet är indexerat. Katalogschemat definierar varje attribut exakt en gång. Varje attribut kan sedan refereras av flera objektklasser. Attributet description definieras till exempel en gång och refereras sedan av många objektklasser.
I följande tabell visas attributdefinitionen för telephone number, ett representativt schemaattribut.
Attribut | Värde |
---|---|
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; |
namn |
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; |
Enkelvärdesattribut och flervärdesattribut
Attribut kan ha ett eller flera värden. En instans av ett enkelvärdesattribut kan endast innehålla ett värde. En instans av ett flervärdesattribut kan innehålla flera värden, som alla måste använda samma syntax. Varje värde i ett flervärdesattribut måste vara unikt.
OBS | |
Ett flervärdesattribut lagrar sina värden i slumpmässig ordning. Därför bör du inte fatta några katalogbeslut – programmatiska eller manuella – baserade på värdenas ordning i ett flervärdesattribut. |
Indexerade attribut
Indexering av attribut hjälper till att förbättra prestandan för frågor som baseras på det indexerade attributet. Både enkelvärdesattribut och flervärdesattribut kan indexeras; klasser kan inte indexeras. Attribut kan markeras för indexering via deras schemadefinitioner. Indexering av attribut gör det också möjligt för användare att använda jokertecken (*) som prefix och suffix när söksträngen specificeras. När du markerar ett attribut som indexerat läggs alla instanser av attributet till i index, inte bara de instanser som tillhör en viss klass. Indexering av attribut, särskilt flervärdesattribut, kan ha negativ inverkan både på den tid som går åt till replikering och att skapa objekt samt storleken på databasen. Därför bör du bara indexera vanligt förekommande attribut.
Allmän information om scheman finns i avsnittet om Active Directory-schema (