DB2 for MVS/ESA 中的應用程式伺服器支援容許 DB2 for MVS/ESA 作為 DRDA 應用系統要求程式的伺服器。 連接至 DB2 for MVS/ESA Application Server的應用系統要求程式可以是:
對任何與 DB2 for MVS/ESA Application Server連接的應用系統要求程式而言,DB2 for MVS/ESA Application Server將支援如下的資料庫存取:
為了使 DB2 for MVS/ESA Application Server能夠正確地處理分散式資料庫要求, 您必須採取下列步驟:
為了使Application Server能夠接收分散式資料庫要求,它必須定義至本端通信管理程式, 且具有唯一的 RDB_NAME。 您必須採取下列步驟,來正確地定義Application Server:
請參閱設定 RU 大小及速率,取得關於如何複查您的 VTAM 網路的資訊。
例如,在需要資料庫管理程式系統傳送通行碼時,您可以容許 DALLAS 系統 (另一個 DB2 for MVS/ESA 系統), 傳送已驗證分散式資料庫要求 (LU 6.2 SECURITY=SAME)。 此外,您可能不想要將登錄記錄在每一個 資料庫管理程式 系統的 CDB 中, 尤其如果有大量的這些系統的話。 圖 10 顯示當對所有其他要求,加強 SECURITY=PGM 時, 如何使用 CDB,為 DALLAS 系統指定 SECURITY=SAME。
INSERT INTO SYSIBM.SYSLUNAMES (LUNAME, SYSMODENAME, USERSECURITY, ENCRYPTPSWDS, MODESELECT, USERNAMES) VALUES ('LUDALLAS', ' ', 'A', 'N', 'N', ' '); INSERT INTO SYSIBM.SYSLUNAMES (LUNAME, SYSMODENAME, USERSECURITY, ENCRYPTPSWDS, MODESELECT, USERNAMES) VALUES (' ', ' ', 'C', 'N', 'N', ' '); |
在圖 11中, 沒有橫列含有 LUNAME 直欄中的空白,所以 DB2 for MVS/ESA 將拒絕任何 LU 的存取,但 LUDALLAS 或 LUNYC 除外。
INSERT INTO SYSIBM.SYSLUNAMES (LUNAME, SYSMODENAME, USERSECURITY, ENCRYPTPSWDS, MODESELECT, USERNAMES) VALUES ('LUDALLAS', ' ', 'A', 'N', 'N', ' '); INSERT INTO SYSIBM.SYSLUNAMES (LUNAME, SYSMODENAME, USERSECURITY, ENCRYPTPSWDS, MODESELECT, USERNAMES) VALUES ('LUNYC', ' ', 'A', 'N', 'N', ' '); |
DB2 for MVS/ESA 不實施如 DRDA 中所定義的資料庫伺服器。 相反地,DB2 for MVS/ESA 將提供次要伺服器,以便使用系統引導的存取, 在單一工作單元中,提供多個 DB2 for MVS/ESA 系統的存取。
系統引導的存取所支援的 SQL 非常不同於 DRDA 遠端工作單元:
SELECT * FROM CHICAGO.USER.TABLE;
當 DB2 for MVS/ESA Application Server接收一個 SQL 要求時,它將檢查 SQL 物件名稱,判斷物件在網路中的常駐之處。 DB2 for MVS/ESA 可接受一、二或三部份的 SQL 物件名稱, 其中名稱將採用下列其中一種格式:
物件名稱將指定 DB2 for MVS/ESA 表格、概略表、同義字或別名的名稱。
authid.objectname 指定物件擁有者及物件名稱。
location.authid.objectname 指定擁有的系統、 擁有的使用者,及物件的名稱。
如果位置名稱 (三部份物件名稱的第一部份) 符合本端 DB2 for MVS/ESA 系統的 RDB_NAME, 則要求將識別本端 DB2 for MVS/ESA 物件。
如果位置名稱不符合本端 DB2 for MVS/ESA 系統的 RDB_NAME, 則 DB2 for MVS/ESA Application Server會將要求重新遞送給位置名稱使用系統引導的存取, 來識別的系統。 目標系統必須是另一個 DB2 for MVS/ESA 系統,因為系統引導的存取僅在 DB2 for MVS/ESA 系統之間受到支援。 系統引導的存取不支援任何遠端連結函數,所以在執行應用程式之前, 不必先在伺服器中連結應用程式。 圖 12 將彙總 DB2 for MVS/ESA 用來解析 SQL 物件名稱的處理。
圖 12. DB2 for MVS/ESA SQL 物件名稱轉換
如果 DB2 for MVS/ESA Application Server將重新遞送 SQL 要求,您必須在 CDB 及 VTAM 中, 定義每一個次要伺服器。 大多數定義處理類似於定義遠端系統中所描述的處理。 欲連接次要伺服器,請執行下列:
作為資料庫資源的擁有者,次要伺服器將控制常駐在伺服器中的 SQL 物件的資料庫機密保護。 不過,這個責任將與產生要求的 DB2 for MVS/ESA Application Server共同分擔。 伺服器將控制 SQL 物件的存取,方式如下:
當應用系統要求程式遞送一個分散式資料庫要求給 DB2 for MVS/ESA Application Server時,可包括下列機密保護考慮事項:
當 DB2 for MVS/ESA Application Server從應用系統要求程式中收到一個一般使用者名稱, 則Application Server可以限制從指定的應用系統要求程式中收到的一般使用者名稱 這可以透過使用來源檢查來完成。 來源檢查容許Application Server指定僅容許特殊友機使用指定的使用者 ID。 例如,Application Server可以限制 JONES "來自" DALLAS。 如果另一個應用系統要求程式 (非 DALLAS) 嘗試傳送名稱 JONES 給Application Server, 則Application Server可以拒絕這個要求,因為名稱並非來自正確的網路位置。
DB2 for MVS/ESA 將實施來源檢查,作為接收端一般使用者名稱轉換的一部份, 將在下段中加以描述。
應用系統要求程式所傳遞的使用者 ID 在整個 SNA 網路中可能不是唯一的。 DB2 for MVS/ESA Application Server可能需要執行接收端名稱轉換, 方可建立在整個 SNA 網路中是唯一的一般使用者名稱。同樣地,DB2 for MVS/ESA Application Server可能需要執行發送端名稱轉換, 提供唯一的一般使用者名稱給應用程式中所包括的次要伺服器 (請參閱提供機密保護, 以取得關於發送端一般使用者名稱轉換的資訊)。
經由將 SYSIBM.SYSLUNAMES 表格的 USERNAMES 直欄設定為 'I' (接收端轉換) 或 'B' (接收端及發送端轉換),來啟用接收端名稱轉換。當接收端名稱轉換生效時, DB2 for MVS/ESA 將轉換應用系統要求程式所傳送的使用者 ID,及 DB2 for MVS/ESA 計劃擁有者的名稱 (如果應用系統要求程式是另一個 DB2 for MVS/ESA 系統的話)。
如果應用系統要求程式同時在 APPC ALLOCATE 動詞上,傳送使用者 ID 及通行碼, 則在轉換使用者 ID 之前,將先驗證使用者 ID 與通行碼。SYSIBM.SYSUSERNAMES 中的 PASSWORD 直欄不是針對通行碼驗證而使用的。 相反地,使用者 ID 及通行碼將呈現給外部機密保護系統 (RACF 或功能與 RACF 相等的產品),以進行驗證。
當驗證 ALLOCATE 動詞上送進來的使用者 ID 時, DB2 for MVS/ESA 具有授權結束程式,您可以用來提供次要 AUTHID 的列示,並執行額外的機密保護檢查。 請參閱 DB2 Administration Guide, 以取得詳細資訊。
接收端名稱轉換處理將在 SYSIBM.SYSUSERNAMES 表格中搜尋一列, 它必須符合下列優先處理列示 (TYPE.AUTHID.LUNAME) 中所顯示的型樣之一:
如果找不到任何橫列,將拒絕遠端存取。 如果找到一列,將容許遠端存取,而且一般使用者名稱將變更為 NEWAUTHID 直欄中所提供的值, 且有一個空白 NEWAUTHID 值指出名稱並未變更。 DB2 for MVS/ESA 所產生的任何 DB2 for MVS/ESA 資源授權檢查 (例如, SQL 表格專用權) 將在已轉換的一般使用者名稱,而不是在原始使用者名稱上執行。
當 DB2 for MVS/ESA Application Server從應用系統要求程式中收到一個一般使用者名稱, 則可以使用 DB2 for MVS/ESA 接收端名稱轉換能力,來完成數個目的。
INSERT INTO SYSIBM.SYSLUNAMES (LUNAME, SYSMODENAME, USERSECURITY, ENCRYPTPSWDS, MODESELECT, USERNAMES) VALUES ('LUNYC', ' ', 'A', 'N', 'N', 'I'); INSERT INTO SYSIBM.SYSUSERNAMES (TYPE, AUTHID, LUNAME, NEWAUTHID, PASSWORD) VALUES ('I', 'JONES', 'LUNYC', 'NYJONES', ' ');
INSERT INTO SYSIBM.SYSLUNAMES (LUNAME, SYSMODENAME, USERSECURITY, ENCRYPTPSWDS, MODESELECT, USERNAMES) VALUES ('LUNYC', ' ', 'A', 'N', 'N', 'I'); INSERT INTO SYSIBM.SYSUSERNAMES (TYPE, AUTHID, LUNAME, NEWAUTHID, PASSWORD) VALUES ('I', ' ', 'LUNYC', 'NYUSER', ' ');
INSERT INTO SYSIBM.SYSLUNAMES (LUNAME, SYSMODENAME, USERSECURITY, ENCRYPTPSWDS, MODESELECT, USERNAMES) VALUES ('LUNYC', ' ', 'A', 'N', 'N', 'I'); INSERT INTO SYSIBM.SYSUSERNAMES (TYPE, AUTHID, LUNAME, NEWAUTHID, PASSWORD) VALUES ('I', 'SMITH', 'LUNYC', ' ', ' '); INSERT INTO SYSIBM.SYSUSERNAMES (TYPE, AUTHID, LUNAME, NEWAUTHID, PASSWORD) VALUES ('I', 'JONES', 'LUNYC', ' ', ' ');
INSERT INTO SYSIBM.SYSLUNAMES (LUNAME, SYSMODENAME, USERSECURITY, ENCRYPTPSWDS, MODESELECT, USERNAMES) VALUES (' ', ' ', 'A', 'N', 'N', 'I'); INSERT INTO SYSIBM.SYSUSERNAMES (TYPE, AUTHID, LUNAME, NEWAUTHID, PASSWORD) VALUES ('I', ' ', 'LUNYC', ' ', ' '); INSERT INTO SYSIBM.SYSUSERNAMES (TYPE, AUTHID, LUNAME, NEWAUTHID, PASSWORD) VALUES ('I', ' ', 'LUCHI', ' ', ' ');
LU 6.2 提供三種主要網路機密保護特性:
網路機密保護 將討論如何透過 DB2 for MVS/ESA 來指定階段作業層次機密保護及暗碼化。 DB2 for MVS/ESA Application Server使用階段作業層次機密保護及暗碼化的方式完全同於 DB2 for MVS/ESA 應用系統要求程式使用它們的方式。
唯一剩下的網路機密保護考慮事項就是 SNA 交談層次機密保護。 交談層次機密保護的某些方面對 DB2 for MVS/ESA Application Server是唯一的。 DB2 for MVS/ESA Application Server在網路機密保護中將扮演兩種不同的角色:
如果發現機密保護違規,則 LU 6.2 需要 DB2 for MVS/ESA Application Server, 將 SNA 機密保護失敗感應碼 ('080F6051'X) 傳回給應用系統要求程式。 因為這個感應碼未描述失敗的原因,所以 DB2 for MVS/ESA 將提供兩種方法, 來記錄分散式機密保護違規的原因:
作為資料庫資源的擁有者,DB2 for MVS/ESA Application Server將控制常駐在 DB2 for MVS/ESA Application Server中的 SQL 物件的資料庫機密保護函數。 DB2 for MVS/ESA 管理的物件的存取是由 DB2 for MVS/ESA 管理者或個別物件的擁有者授與使用者的專用權來控制。 DB2 for MVS/ESA Application Server控制的兩個基本類別的物件為:
當應用程式與 DB2 for MVS/ESA 連結時,資料包將含有應用程式中所含有的 SQL 陳述式。這些 SQL 陳述式的分類如下:
當一般使用者被授與執行資料包的權限時,他們將自動具有權限, 來執行資料包中所含有的每一個靜態 SQL 陳述式。 因此,如果一般使用者執行的資料包僅含有靜態 SQL 陳述式, 則他們不需要 DB2 for MVS/ESA 表格專用權。
當您建立資料包時, DISABLE/ENABLE 選項容許您控制哪些 DB2 for MVS/ESA 連接類型可執行資料包。 您可以使用 RACF 及 DB2 for MVS/ESA 機密保護結束常式, 以選用方式容許一般使用者使用 DDF。 您可以使用 RLF,為遠端連結及動態 SQL 執行,來指定處理器時間的限制。
請考慮名為 MYPKG 的 DB2 for MVS/ESA 資料包, 這是 JOE 所擁有的。 JOE 可經由發出 DB2 for MVS/ESA GRANT USE 陳述式, 容許 SAL 執行資料包。 當 SAL 執行資料包時,將發生下列:
DB2 for MVS/ESA Application Server如何使用機密保護子系統 (RACF 或與 RACF 功能相等的產品), 端視您如何在 SYSIBM.SYSLUNAMES 表格中定義接收端名稱轉換而定。
如果來自應用系統要求程式的要求僅含有使用者 ID (SECURITY=SAME),將全然不會呼叫外部機密保護系統, 因為接收端名稱轉換規則將定義哪些使用者可被容許與 DB2 for MVS/ESA Application Server連接。
您必須確定您的 DB2 for MVS/ESA 子系統, 具有將每一個應用系統要求程式的 CCSID 轉換為您的 DB2 for MVS/ESA 子系統的安裝 CCSID 的能力。請參閱代表資料,取得詳細資訊。