Sun Java System Directory Server Enterprise Edition 6.2 管理指南

從指令行建立 CoS 定義項目

所有 CoS 定義項目皆有 LDAPsubentry 物件類別,且繼承 cosSuperDefinition 物件類別。此外,每種 CoS 類型皆繼承特定物件類別並包含對應的屬性。下表列出與各種 CoS 定義項目類型相關的物件類別與屬性。

表 9–1 CoS 定義項目中的物件類別與屬性

CoS 類型 

CoS 定義項目 

指標 CoS 

objectclass: top

objectclass: LDAPsubentry

objectclass: cosSuperDefinition

objectclass: cosPointerDefinition

cosTemplateDN: DN

cosAttribute: attributeName override merge

間接 CoS 

objectclass: top

objectclass: LDAPsubentry

objectclass: cosSuperDefinition

objectclass: cosIndirectDefinition

cosIndirectSpecifier: attributeName

cosAttribute: attributeName override merge

類別 CoS 

objectclass: top

objectclass: LDAPsubentry

objectclass: cosSuperDefinition

objectclass: cosClassicDefinition

cosTemplateDN: DN

cosSpecifier: attributeName

cosAttribute: attributeName override merge

cosAttribute 一律為多值。各值會定義 CoS 機制所產生的一個屬性。

您可以使用 CoS 定義項目中的下列屬性。如需有關各屬性的更多資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 Man Page Reference」中個別屬性的說明。

表 9–2 CoS 定義項目屬性

屬性 

CoS 定義項目內的用途 

cosAttribute

attributeName override merge

定義要產生值的運算屬性名稱。此屬性為多值,每個值代表其值會從範本產生的屬性名稱。overridemerge 限定元指定在此表之後所述的特殊案例中,CoS 屬性值的運算方式。

attributeName 無法包含任何子類型。含子類型的屬性名稱會遭忽略,不過仍會處理 cosAttribute 的其他值。

cosIndirectSpecifier

attributeName

定義目標項目中的屬性名稱,間接 CoS 會使用其值識別範本項目。已命名的屬性稱為限定符號,必須包含每個目標項目中完整的 DN 字串。此屬性為單值,但是 attributeName 可以是多值,以定義多個範本。

cosSpecifier

attributeName

定義目標項目中的屬性名稱,類別 CoS 會使用其值識別範本項目。已命名的屬性稱為限定符號,且必須包含範本項目的 RDN 中可以找到的字串。此屬性為單值,但是 attributeName 可以是多值,以定義多個範本。

cosTemplateDN

DN

提供範本項目的完整 DN 給指標 CoS 定義,或提供範本項目的基底 DN 給類別 CoS。此屬性為單值。 


備註 –

您無法使用 isMemberOf 屬性做為 CosSpecifier,讓靜態群組的所有成員自動繼承共用運算屬性值。


cosAttribute 屬性允許 CoS 屬性名稱之後跟隨兩個限定元:override 限定元與 merge 限定元。

override 限定元說明 CoS 動態產生的屬性已實際存在於項目中時的運作方式。override 限定元可以是下列其中之一:

merge 限定元不存在或為 merge-schemes。此限定元允許運算的 CoS 屬性可為來自多個範本或多個 CoS 定義的多重值。如需更多資訊,請參閱多值 CoS 屬性

覆寫實際屬性值

您可能依下列方式建立包含 override 限定元的指標 CoS 定義項目:


dn: cn=pointerCoS,dc=example,dc=com
objectclass: top
objectclass: LDAPsubentry
objectclass: cosSuperDefinition
objectclass: cosPointerDefinition
cosTemplateDn: cn=exampleUS,cn=data
cosAttribute: postalCode override

此指標 CoS 定義項目表示項目與產生 postalCode 屬性值的範本項目 cn=exampleUS,cn=data 相關。override 限定元表示如果目標項目內存在 postalCode 屬性,則此值會取代屬性值。


備註 –

如果使用 operationaloverride 限定元定義 CoS 屬性,則無法在 CoS 範圍內任何項目中的屬性「實際」值上執行寫入作業。


多值 CoS 屬性

當您指定 merge-schemes 限定元時,產生的 CoS 屬性可以兩種方式成為多值屬性:

這兩種情況可同時發生,並定義更多值。但是在所有情況下,重複的值僅會在產生的屬性中一次傳回。

如果沒有 merge-schemes 限定元,會使用範本項目的 cosPriority 屬性,為產生的屬性決定所有範本之間的單一值。此範例會在下一節中說明。

merge-schemes 限定元永遠不會合併在目標中以範本產生的值所定義之「實際」值。merge 限定元與 override 限定元無關。所有配對皆有可能,且可進行各配對的運作方式。此外,限定元可以在屬性名稱之後以任何順序指定。


備註 –

同一屬性有多個 CoS 定義時,所有定義皆必須有相同的 overridemerge 限定元。當 CoS 定義中有不同的成對之限定元時,會任意從所有定義選取其中一個組合。


CoS 屬性優先權

若有多個 CoS 定義或多值限定符號,但沒有 merge-schemes 限定元,則目錄伺服器會使用優先權屬性選取單一範本,以定義運算屬性的單一值。

cosPriority 屬性表示特定範本在所考慮的所有範本之間的全域優先權。優先權零是最高優先權。沒有 cosPriority 屬性的範本會視為最低的優先權。當兩個以上的範本提供一個屬性值,但有相同的優先權或沒有優先權時,會隨意選擇值。

使用 merge-schemes 限定元時不會考量範本優先權。合併時,所有考量的範本會定義一個值,而不管範本定義的優先權。如下節中所述,會在 CoS 範本項目上定義 cosPriority 屬性。


備註 –

cosPriority 屬性不得有負值。此外,間接 CoS 產生的屬性不支援優先權。請勿在間接 CoS 定義的範本項目中使用 cosPriority