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

延伸目錄伺服器模式

當您新增屬性至模式時,必須建立含有新屬性的新物件類別。雖然直接將屬性增加到已含有您所需之大部分屬性的現有物件類別中,似乎是很方便的做法,但此舉卻會危及與 LDAP 用戶端之間的互通操作。

目錄伺服器與現有 LDAP 用戶端之間的互通操作,依賴於標準 LDAP 模式。若您變更標準模式,也將在升級伺服器時遇到困難。同理,您亦不可刪除標準模式元素。

目錄伺服器模式儲存在 cn=schema 項目的屬性中。與配置項目相同,這也是可在伺服器啟動期間從檔案讀取的 LDAP 模式檢視。

您用以延伸目錄伺服器模式的方法,取決於您是否要控制模式延伸儲存時所使用的檔案名稱。此外也取決於您是否要透過複寫發送變更給用戶。請參閱下表,以根據您特定的情況決定所要執行的程序。

表 11–1 延伸模式的方式

作業 

指示 

您不使用複寫。想增加自訂模式檔案,藉以延伸模式。 

使用自訂模式檔案延伸模式

您希望透過 LDAP 延伸模式。 

透過 LDAP 延伸模式

您要使用複寫。想在所有伺服器上保留自訂模式檔案的檔案名稱。 

使用自訂模式檔案延伸模式

您要使用複寫。想在主伺服器複本上增加自訂模式檔案,藉以延伸模式。接著,要讓複寫機制將模式延伸複製到用戶伺服器上。 

使用模式檔案與複寫延伸模式

如需有關物件類別、屬性與目錄模式的更多資訊,以及如何延伸模式的相關指示,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Deployment Planning Guide」中的「Designing a Directory Schema」。如需有關標準屬性與物件類別的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Man Page Reference」

本節針對可延伸目錄模式的多種方法提供相關資訊。

使用自訂模式檔案延伸模式

模式檔案是位於 instance-path/config/schema/ 中的 LDIF 檔案。instance-path 對應於目錄伺服器實例所在的檔案系統目錄。例如,實例可能位於 /local/ds/ 中。這些檔案可定義標準模式,供目錄伺服器以及所有依賴目錄伺服器的伺服器使用。如需有關檔案與標準模式的說明,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Reference」「Sun Java System Directory Server Enterprise Edition 6.0 Man Page Reference」

模式檔案只會在伺服器啟動時讀取一次。檔案的 LDIF 內容會增加至 cn=schema 中模式的常駐記憶體 LDAP 檢視。模式定義的順序是很重要的,因此模式檔案名稱的開頭處會加上號碼,並依據字母數字順序載入。只有安裝期間所定義的系統使用者,才能寫入此目錄中的模式檔案。

直接在 LDIF 檔案中定義模式時,請勿於 X-ORIGIN 欄位中使用 'user defined' 值。此值必須保留給透過 cn=schema 的 LDAP 檢視所定義,同時出現在檔案 99user.ldif 中的模式元素使用。

99user.ldif 檔案含有其他 ACI,供 cn=schema 項目與所有使用指令行或 DSCC 增加的模式定義使用。新增模式定義時,即會覆寫 99user.ldif 檔案。若要修改此檔案,您必須立即重新啟動伺服器,以確保更新目前的變更。

請勿修改其他模式檔案中所定義的標準模式。但您可以新增檔案以定義新的屬性與物件類別。例如,若要在多部伺服器上定義新的模式元素,您可以先將元素定義於名為 98mySchema.ldif 的檔案中,再將此檔案複製到所有伺服器的模式目錄中。接著您必須重新啟動所有伺服器,以載入新的模式檔案。

Procedure使用自訂模式檔案延伸模式

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 建立您自己的模式定義檔案,如 98mySchema.ldif

    模式檔案中的定義所使用之語法,說明於 RFC 4517 中。

  2. (可選擇) 若此伺服器是可傳送更新至其他伺服器的主伺服器複本,請將您的模式定義檔案複製到複寫拓樸中的每個伺服器實例上。

    複寫機制無法偵測您對含有模式的 LDIF 檔案所做的任何直接變更。因此,即使在重新啟動主伺服器後,您的變更仍不會複寫至用戶。

  3. 請重新啟動已複製了模式定義檔案之每個目錄伺服器實例。

    您的變更將在伺服器重新啟動後生效,並重新載入模式定義。

透過 LDAP 延伸模式

模式係由 LDAP 檢視定義於 cn=schema 中,因此您可以使用 ldapsearchldapmodify 公用程式,以線上方式檢視及修改模式。但您只能修改在 X-ORIGIN 欄位中具有 'user defined' 值的模式元素。伺服器會拒絕對其他定義的任何修改。

新的元素定義,以及您對使用者定義的元素所做的變更,都會儲存在 99user.ldif 檔案中。

Procedure透過 LDAP 延伸模式

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

開始之前

從指令行修改模式定義很可能會發生錯誤,因為您必須一字不漏地鍵入冗長的值。但您可以在更新目錄模式時所需的程序檔中使用此功能。

  1. 使用 ldapmodify(1) 指令,增加或刪除個別的 attributeTypes 屬性值。

    如需詳細資訊,請參閱建立屬性類型刪除屬性類型

  2. 使用 ldapmodify(1) 指令,增加或刪除個別的 objectClasses 屬性值。

    如需詳細資訊,請參閱建立物件類別刪除物件類別

另請參閱

若要修改其中一個值,必須先刪除該特定值,再將其增加為新值。之所以必須這麼做,是因為這些屬性是多值屬性。如需詳細資訊,請參閱修改多值屬性的某個值

使用模式檔案與複寫延伸模式

如需有關自訂模式檔案的資訊,請參閱使用自訂模式檔案延伸模式。下列程序說明如何使用複寫機制,將模式延伸傳播至拓樸中的所有伺服器。

Procedure使用模式檔案與複寫延伸模式

針對此程序的某些部分,您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。此程序的其他部分只能使用指令行完成。

  1. 以下列其中一種方式備妥您的模式延伸:

    • 建立您自己的模式定義檔案,如 98mySchema.ldif

    • 將模式延伸增加到 99user.ldif 中。

    模式檔案中的定義所使用之語法,說明於 RFC 4517 中。

  2. 在存放模式定義檔案的主伺服器上,執行 schema_push 指令。

    此程序檔不會實際將模式發送至複本。此程序檔會將特殊的屬性寫入模式檔案中,使模式檔案在載入時隨即進行複寫。如需更多資訊,請參閱 schema_push(1M) 線上手冊。

  3. 重新啟動存放模式定義檔案的主伺服器。

    複寫機制無法偵測您對含有模式的 LDIF 檔案所做的任何直接變更。當您在執行 schema_push 後重新啟動伺服器時,伺服器會載入所有模式檔案,接著複寫機制會將新的模式複寫至用戶。