在對映表中使用大量項目的站點應考量組織其對映表,在其中建立幾個一般萬用字元項目,以呼叫一般資料庫進行特定查詢。與直接在對映表中使用大量項目相比,建立幾個呼叫一般資料庫以進行特定查詢的對映表項目更為高效。
一個特例是某些站點想控制每個使用者,以決定誰可以收發網際網路電子郵件。使用存取對映表 (例如 ORIG_SEND_ACCESS) 可以方便地實作此類控制。對於此類用途,透過將大量特定資訊 (例如特定位址) 儲存在一般資料庫中,並建立對映表項目相應地呼叫一般資料庫,可大幅提昇效率和效能。
例如,可考量如下所示的 ORIG_SEND_ACCESS 對映表。
ORIG_SEND_ACCESS ! Users allowed to send to Internet ! *|adam@siroe.com|tcp_local|* $Y *|betty@siroe.com|tcp_local|* $Y ! ...etc... ! ! Users not allowed to send to Internet ! *|norman@siroe.com|tcp_local|* $NInternet$ access$ not$ permitted *|opal@siroe.com|tcp_local|* $NInternet$ access$ not$ permitted ! ...etc... ! ! Users allowed to receive from the Internet ! tcp_*|*|*|adam@siroe.com $Y tcp_*|*|*|betty@siroe.com $Y ! ...etc... ! ! Users not allowed to receive from the Internet ! tcp_*|*|*|norman@siroe.com $NInternet$ e-mail$ not$ accepted tcp_*|*|*|opal@siroe.com $NInternet$ e-mail$ not$ accepted ! ...etc... |
與使用逐個輸入每個使用者的對映表相比,以下範例中所示的設定效率更高 ( 如果 包含數以千計的使用者項目,則效率更高),該圖顯示一般資料庫的原始碼文字檔 範例和 ORIG_SEND_ACCESS 對映表範例。若要將此原始碼檔案編譯為資料庫格式,請 執行 imsimta crdb 指令:
% imsimta crdb input-file-spec output-database-spec
如需有關 imsimta crdb 公用程式的詳細資訊,請參閱「Sun Java System Messaging Server 6 2005Q4 Administration Reference」中的「imsimta crdb」。
DATABASE ENTRIES SEND|adam@domain.com $Y SEND|betty@domain.com $Y ! ...etc... SEND|norman@domain.com $NInternet$ access$ not$ permitted SEND|opal@domain.com $NInternet$ access$ not$ permitted ! ...etc... RECV|adam@domain.com $Y RECV|betty@domain.com $Y ! ...etc... RECV|norman@domain.com $NInternet$ e-mail$ not$ accepted RECV|opal@domain.com $NInternet$ e-mail$ not$ accepted MAPPING TABLE ORIG_SEND_ACCESS ! Check if may send to Internet ! *|*|*|tcp_local $C${SEND|$1}$E ! ! Check if may receive from Internet ! tcp_*|*|*|* $C${RECV|$3}$E |
在此範例中,在一般資料庫左邊使用任意字串 SEND| 和 RECV| (以及在對映表由此產生的一般資料庫探測中) 提供了一種可區分這兩種探測的方法。如表格所示,使用 $C 和 $E 旗標包圍一般資料庫探測是對映表呼叫一般資料庫的典型方式。
以上範例顯示了根據一般資料庫項目檢查簡單對映表探測的情況。具有更多複雜探測的對映表亦可從使用一般資料庫中受益。