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

虛擬轉換範例

以下小節提供需要虛擬資料檢視的使用案例,以及執行使用案例時所需的轉換模型與動作之組合。

從項目的現有屬性導出屬性

使用下列轉換規則從項目的現有屬性導出屬性。例如,套用下列轉換規則時,會顯示源自 givenNamesn 屬性的 mail 屬性。


$ dpconf add-virtual-transformation dataview1 read add-attr \
mail \${givenName}.\${sn}@example.com 

下圖表示當搜尋傳回使用者項目時,使用者項目所發生的轉換。

從項目的現有屬性導出屬性

將虛擬屬性對映至實體屬性

使用下列對映轉換規則,增加當作純虛擬屬性一部分所提供的屬性。例如,套用下列轉換規則時,即使未在項目中指定,也會在伺服器中儲存 givenName。該值擷取自定義為 mail \${givenName}@example.com 的純虛擬屬性。


$ dpconf add-virtual-transformation dataview1 mapping add-attr \
mail \${givenName}@example.com

首先增加包含虛擬屬性 mail (而非 givenName 屬性) 的項目。虛擬轉換會產生 givenName 屬性的值,並連同 givenName 一起儲存項目,而不儲存 mail 屬性。然後使用 uid 屬性執行搜尋,擷取 givenName 的值,而相同的虛擬轉換會產生虛擬屬性 mail 的值。

下圖表示使用者項目發生的轉換。

將虛擬屬性的屬性增加至項目

顯示第二個虛擬屬性值,由其他實體屬性指定

使用下列轉換顯示由其他屬性指定的屬性值。例如,顯示 uid 作為 cn,以及顯示已儲存在項目中的 cn 值。下列指令行不會將其他值儲存至 cn,但會在結果傳回用戶端之前套用轉換。


$ dpconf add-virtual-transformation dataview1 read add-attr-value cn \${uid}

下圖表示當搜尋傳回使用者項目時,使用者項目所發生的轉換。

顯示由其他屬性指定的屬性值

將第二個值儲存至由其他實體屬性指定的屬性

使用下列轉換規則儲存屬性值,以及增加新項目時所提供的值。在此情況下,當您增加項目時,即會儲存 mail 屬性的其他值。此轉換僅會在建立新項目時套用。


$ dpconf add-virtual-transformation dataview1 write add-attr-value \
mail \${uid}@example.com

下圖顯示增加請求時所發生的轉換。

將其他屬性的值增加至某一屬性

從輸出移除屬性

若不想在輸出中顯示屬性,請使用下列轉換規則。例如,套用下列轉換規則時,輸出中不會傳回 givenName


dpconf add-virtual-transformation dataview1 read remove-attr givenName

下圖表示當搜尋傳回使用者項目時,使用者項目所發生的轉換。

從輸出移除屬性

儲存項目時遮罩屬性

若不想儲存特定屬性,請使用下列轉換規則。例如,套用下列轉換規則時,givenName 屬性不會儲存於實體資料庫中。此轉換僅會在建立新項目時套用。


$ dpconf add-virtual-transformation dataview1 write remove-attr givenName

下圖顯示增加請求時所發生的轉換。

儲存項目時遮罩屬性

顯示屬性的預設值

若不想顯示指定給屬性的預設值,請使用下列轉換。例如,套用下列轉換時,本身不包含電話號碼的項目中會顯示預設電話號碼。


$ dpconf add-virtual-transformation data-view read 11111 telephoneNumber default-number

下圖表示當搜尋傳回使用者項目時,使用者項目所發生的轉換。

顯示屬性的預設值

將預設值儲存至屬性

僅在建立項目期間未指定屬性值時,才會儲存預設值。若不想以預設值儲存屬性,請使用下列轉換規則。例如,套用下列轉換時,會隨您建立的每個項目各增加一個預設電話號碼。此轉換僅會在增加項目時套用。


$ dpconf add-virtual-transformation dataview1 write 11111 \
telephoneNumber telephone-number

下圖顯示增加請求時發生的轉換。

將預設值增加至屬性