Um esquema dos Serviços LDS do Active Directory (AD LDS) define, utilizando classes de objectos e atributos, os tipos de objectos e de dados que podem ser criados e armazenados num directório do AD LDS. Cada conjunto de configuração do AD LDS tem o seu próprio esquema passível de gestão independente, guardado na partição do directório de esquema. Seguindo os conceitos de concepção do AD LDS em termos de simplicidade e de flexibilidade, o esquema base (ou predefinição) do AD LDS contém apenas as classes e os atributos necessários para iniciar uma instância do AD LDS. O esquema pode ser expandido com novas classes e atributos, por administradores ou pelas próprias aplicações. Para além disso, classes e atributos de esquema desnecessários podem ser desactivados. Tal como para todos os objectos no directório, as listas de controlo de acesso (ACLs) protegem os objectos de esquema para que apenas os utilizadores autorizados possam alterar o esquema. Cada objecto num directório do AD LDS é uma instância de uma classe de objecto definida num esquema, tal como é mostrado na seguinte imagem.

Classes de objecto
Uma classe de objecto representa uma categoria de objectos, tais como utilizadores, impressoras ou programas de aplicação, que partilham um conjunto de características comuns. A definição para cada classe de objecto contém uma lista dos atributos que podem ser utilizados para descrever instâncias da classe. Por exemplo, a classe User tem atributos tais como givenName, surname e streetAddress. A lista de atributos de uma classe está dividida nesses atributos que um objecto dessa classe tem de conter, e atributos adicionais que um objecto pode conter. A definição de cada classe lista também as classes cujos objectos podem ser principais de objectos de uma determinada classe.
Por exemplo, a seguinte tabela mostra a definição para a classe User do AD LDS.
Atributo | Valor |
---|---|
Dn |
CN=Utilizador,CN=Esquema,CN=Configuração |
objectClass |
top; classSchema; |
cn |
Utilizador; |
nomeDistinto |
CN=Utilizador,CN=Esquema,CN=Configuração; |
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 |
Utilizador; |
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; |
Atributos
O esquema também define cada atributo. A definição de cada atributo inclui identificadores exclusivos do atributo, a sintaxe do atributo, limites de intervalo opcionais dos valores do atributo, se o atributo pode ter apenas um valor ou vários e se o atributo está indexado. O esquema de directório define cada atributo exactamente uma vez. Cada atributo pode então ser referenciado por várias classes de objecto. Por exemplo, o atributo description é referido uma vez e, em seguida, referenciado por várias classes de objecto.
A seguinte tabela mostra a definição de atributo para número de telefone, um atributo de esquema representativo.
Atributo | Valor |
---|---|
objectClass |
top; attributeSchema; |
cn |
Número-Telefone; |
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; |
Atributos de valor único e de valor múltiplo
Os atributos podem ser de valor único ou de valor múltiplo. Uma instância de um atributo de valor único só pode conter um único valor. Uma instância de um atributo de valor múltiplo pode conter vários valores, que terão de utilizar todos a mesma sintaxe. Cada valor de um atributo de valor múltiplo tem de ser único.
![]() | Nota |
Um atributo de valor múltiplo armazena os respectivos valores por ordem aleatória. Assim, o utilizador não deverá tomar decisões de directório, programáticas ou manuais, com base na ordem de valores num atributo de valor múltiplo. |
Atributos indexados
A indexação de atributos ajuda a melhorar o desempenho de consultas baseadas no atributo indexado. Os atributos de valor único e de valor múltiplo podem ser indexados; as classes não podem ser indexadas. Os atributos podem ser marcados para indexação através da respectiva definição de esquema. Indexar um atributo permite também aos utilizadores utilizar caracteres universais (*) como prefixos e sufixos quando especificam uma cadeia de pesquisa. Ao marcar um atributo como indexado, todas as instâncias desse atributo são adicionadas ao índice, não apenas as que são membros de uma determinada classe. Indexar atributos, particularmente os de valor múltiplo, pode afectar negativamente a replicação e o tempo de criação de objecto, bem como o tamanho da base de dados do directório. Assim, só deverá indexar atributos utilizados com frequência.
Para obter informações genéricas sobre esquemas, consulte o Esquema do Active Directory (