AS/400 系統上的應用程式伺服器支援容許它作為 DRDA 應用程式要求程式的伺服器。 已連接至 DB2 Universal Database for AS/400 應用程式伺服器的應用程式要求程式可以是任何支援 DRDA 通訊協定的從屬站。
應用程式要求程式被容許存取在 DB2 Universal Database for AS/400 應用程式伺服器本端所儲存的表格。 在任何 SQL 陳述式可以執行之前,應用程式要求程式必須先在 DB2 Universal Database for AS/400 應用程式伺服器中建立一個資料包。 在程式執行期間,DB2 Universal Database for AS/400 應用程式伺服器將使用含有應用程式的 SQL 陳述式的資料包。
若要在 AS/400 應用程式伺服器上處理分散式資料庫要求, 必須指定 RDB 目錄中的應用程式伺服器資料庫的名稱。對「SNA 通信」而言,您需要定義應用程式伺服器系統, 以及設定要求及回應單元的大小與速率。 針對 TCP/IP 通信,DB2 Universal Database for AS/400 版本 4.2 中有支援, 請參閱使用 TCP/IP 連接 DRDA 網路中的 DB2 Universal Database for AS/400。
您可以用您識別應用程式要求程式資料庫 (位在應用程式要求程式位置中) 的同一個方式, 來指定應用程式伺服器資料庫 (位在應用程式伺服器位置中) 的名稱。 使用「新增關聯性資料庫目錄登錄 (ADDRDBDIRE)」命令,並將 *LOCAL 指定為遠端位置。
對使用 SNA 的存取而言, 將應用程式伺服器定義至網路同於將應用程式要求程式定義至網路。 您需要建立線路、控制器、裝置及模式說明,來同時定義將傳送要求的應用程式伺服器及應用程式要求程式。 關於如何將應用程式伺服器定義至網路的資訊, 請參閱將本端系統定義至 DB2 Universal Database for AS/400及將遠端系統定義至 DB2 Universal Database for AS/400。 亦請參閱 AS/400 Distributed Database Programming。
用來啟動AS/400 應用程式伺服器資料庫的異動程式名稱為 DRDA 預設值 X'07F6C4C2'。 這個異動程式名稱是在 AS/400 系統內定義的,以便啟動應用程式伺服器。 當 DB2/400 支援該通訊協定時,TCP/IP 連接的對應參數為埠。 DB2/400 將恆使用 DRDA 的已知埠 446 作為伺服器。
網路定義必須複查,以判斷分散式資料庫網路是否會影響現存的網路。 這些考慮同時適用於應用程式伺服器與應用程式要求程式。
當應用程式要求程式遞送一個分散式資料庫要求給 AS/400 應用程式伺服器時, 可包括下列機密保護考慮事項:
應用程式要求程式將傳送一個使用者 ID 給應用程式伺服器,以進行機密保護處理。 在 AS/400 應用程式伺服器上執行的工作將使用它們的使用者 ID, 或在某些情況中,則使用預設使用者 ID。
AS/400 應用程式伺服器不提供接收端使用者 ID 轉換, 來解決不是唯一的使用者 ID 之間的衝突, 或將多個使用者群組在單一使用者 ID 下。 每一個從應用系統要求程式傳送過來的使用者 ID 均必須存在於應用程式伺服器上。 將傳進來的要求群組在單一使用者 ID 內的方法 (可能會損失一些機密保護), 就是在將處理遠端工作啟動要求的子系統內的通信登錄中指定一個預設使用者 ID。 請參閱下列中的 ADDCMNE 及 CHGCMNE 的說明: AS/400 CL Reference。
LU 6.2 提供三種主要網路機密保護特性:
DB2 Universal Database for AS/400 應用程式伺服器使用階段作業層次機密保護的方式,完全同於 DB2 Universal Database for AS/400 應用程式要求程式使用它的方式。
應用程式伺服器將控制用於交談的 SNA 交談層次。 APPC 裝置說明上的 SECURELOC 參數或 APPN 遠端位置列示上的安全位置值將決定已從應用程式要求程式中所接受的交談層次。
可能的 SNA 交談機密保護選項為:
SNA/DS (SNA 分送服務程式) 需要一個預設使用者 ID,所以 SNA/DS 應該具有自己的子系統, 以便在正常情況下,您可以不要 DRDA 應用程式的預設使用者 ID。
將傳進來的啟動工作要求群組在單一使用者 ID 內的方法已在選取一般使用者名稱中提到。 這個方法不會驗證從應用系統要求程式傳送過來的使用者 ID。 應用程式伺服器工作是在預設使用者 ID 下啟動, 而且已從應用程式伺服器中起始連接的使用者具有應用程式伺服器的存取權, 即使所傳送的使用者 ID 已限制授權,也是如此。 這是經由下列方法而做到: 將應用程式伺服器定義為非安全位置、在 AS/400 子系統通信登錄中指定預設使用者 ID, 以及架構應用程式要求程式,以便僅在連接處理期間,才傳送使用者 ID。 如果已傳送通行碼,將使用伴隨它的使用者 ID, 而不是預設使用者 ID。
AS/400 子系統通信登錄將經由用來啟動交談的裝置及模式名稱, 來加以區分。 經由將不同的預設使用者 ID 指定給不同的裝置/模式配對, 可依據使用者與應用程式伺服器的通信方式,將這些使用者群組在一起。
AS/400 系統同時也會提供一個網路機密保護特性,不過, 僅對分散式資料庫及分散式檔案管理,才會使用這個特性。 這些類型的系統存取的網路屬性已存在,不是拒絕所有存取嘗試, 就是容許系統依據物件對物件,來控制機密保護。
DB2 Universal Database for AS/400 版本 4.2 中提供了名稱為 CRTDDMTCPA 的新命令。 這可讓您指定伺服器是否接受沒有通行碼的 TCP/IP 連接要求。
所有機密保護將透過 OS/400 機密保護功能來處理。
AS/400 系統沒有外部機密保護子系統。 所有機密保護將透過本身為作業系統其中一部份的 OS/400 機密保護功能來處理。 作業系統將控制系統上所有物件的授權,這些物件包括程式、 資料包、表格、概略表及集成。
應用程式伺服器將控制常駐在應用程式伺服器上的物件的授權。 那些物件的機密保護將依據哪一個使用者 ID 啟動應用程式伺服器工作而定。 這個使用者 ID 將依據 選取一般使用者名稱 中所描述的方法來決定。
物件的機密保護可透過使用物件權限 CL 命令, 或透過 SQL 陳述式 GRANT 及 REVOKE, 來管理物件的機密保護。 物件權限 CL 命令包括「授與物件權限 (GRTOBJAUT)」及「取消物件權限 (RVKOBJAUT)」。 這些 CL 命令可用於系統上的任何物件之上。 陳述式 GRANT 及 REVOKE 僅能用於 SQL 物件上:表格、概略表及資料包。 如果您需要變更其他物件 (如程式或集成) 的授權,請使用 GRTOBJAUT 及 RVKOBJAUT 命令。
當在系統上建立物件時,將給與它們預設授權。 建立表格、概略表及資料包的使用者 ID 將給與所有權限。 給與所有其他使用者 ID (公用) 的權限將同於它們對物件在其中建立的集成或檔案庫所具有的權限。
在資料包執行期間,資料包內的靜態或動態陳述式所參照的物件的權限將被檢查。 如果資料包的建立者沒有參照物件的權限,則在建立資料包時, 將傳回警告訊息。 在執行時,執行資料包的使用者將採用資料包建立者的權限。 如果已將表格的權限授與資料包建立者,但執行資料包的使用者未獲授權, 則使用者將採用資料包建立者的權限,而且容許他使用表格。
關於系統機密保護的詳細資訊,請參閱 AS/400 Security - Reference。
支援 DRDA 的產品將在應用程式伺服器中,自動執行任何需要的轉換。 為了能夠自動執行,應用程式伺服器 CCSID 值必須是應用程式要求程式能支援的轉換值。
在應用程式伺服器上,您應該關心與下列有關的 CCSID:
您的服務工作的 CCSID 必須與應用程式要求程式相容。 這個 CCSID 是由要求連接的使用者 ID 的使用者設定檔所建立的。 OS/400 工作管理支援將把工作 CCSID 起始設定為使用者設定檔上的 CCSID。 如果 CCSID 不存在於使用者設定檔上,工作管理支援將從系統值中取得 CCSID (QCCSID)。 剛開始, 系統值 QCCSID 將設定為 CCSID 65535。
在起始 DB2 Universal Database for AS/400 的要求之前, 您應該登入,並使用「變更使用者設定檔 (CHGUSRPRF)」, 指定一個可接受 CCSID 值給將服務 DRDA 要求的工作的使用者設定檔。
SQL 集成是由 OS/400 檔案庫物件、異動日誌、異動日誌接收器,以及 IDDU 資料字典 (選用的), 如果有在 CREATE COLLECTION 陳述式上指定 WITH DATA DICTIONARY 子句。在建立時,針對這些物件中的某幾個使用的實體及邏輯檔案將預設為工作 CCSID。 如果您從不支援這些檔案的 CCSID 值的應用程式要求程式中, 查詢資料字典或目錄,您可以看到無法顯示或扭曲的資料。 或是,應用程式要求程式可以發出一則訊息,告訴您不支援 CCSID 值。 欲更正這種情況,您需要以其他系統可接受的工作 CCSID 值, 來建立一個新的 SQL 集成。
工作 CCSID 可經由使用「變更工作 (CHGJOB)」命令來變更。 或是對後續的工作使用「變更使用者設定檔 (CHGUSRPRF)」命令, 來變更使用者設定檔的 CCSID 值。 在 CL 程式中,使用「擷取工作屬性 (RTVJOBA)」命令,取得現行工作 CCSID。 另一種方式,就是使用「使用工作 (WRKJOB)」命令,然後在「使用工作」顯示畫面上, 選取選項 2,「顯示工作定義屬性」。
SQL 表格對應於與您的集成同名的檔案庫內的 DB2 Universal Database for AS/400 實體檔 表格的直欄也對應於實體檔的欄位定義。 表格的 CCSID 值或表格的直欄可能與應用程式要求程式不相容。 欲變更這個值, 請參閱本書代表資料,有關如何變更資料庫實體檔的說明。 在版本 3.1 之前的 OS/400 版本中的 CCSID 不相容的主要來源, 就是許多檔案或 SQL 表格是以 CCSID 65535 來標示 (這是預設值)。 在版本 3.1 及後續版次中,這些檔案的 CCSID 將自動變更為其他更適合的值。