首先連線至業務資料庫,啟用聯邦參數並重啟 DB2 服務:
CONNECT TO JSDA USER db2admin USING pass1009;
UPDATE DBM CFG USING FEDERATED YES;
DB2STOP FORCE;
DB2START;
移除舊有 Wrapper 後建立 DRDA Wrapper:
DROP WRAPPER DRDA;
CREATE WRAPPER "DRDA" LIBRARY 'db2drda.dll' OPTIONS (DB2_FENCED 'N');
替換 AUTHORIZATION、PASSWORD、DBNAME 為實際遠端資料庫帳密與名稱:
CREATE SERVER TEMPSERVER
TYPE DB2/UDB VERSION 8.1
WRAPPER DRDA
AUTHORIZATION "用戶名"
PASSWORD "密碼"
OPTIONS (DBNAME 'TESTPP');
將本地使用者對應至遠端認證資訊,FOR db2admin 為本地管理帳號,若不同請同步修改後續 Schema:
CREATE USER MAPPING FOR db2admin SERVER TEMPSERVER
OPTIONS (REMOTE_AUTHID '用戶名', REMOTE_PASSWORD '密碼');
為每張遠端資料表建立 Nickname,再依業務需求組合成本地視圖。範例包含人員基本資料、組織資訊、子系統對應、人員組織關聯、角色權限等多個視圖:
-- 人員基本資料視圖
CREATE NICKNAME db2admin.TEMPXX_PERSON2 FOR TEMPSERVER.db2admin.TEMPXX_PERSON;
CREATE NICKNAME db2admin.TEMPXX_PERSONACCOUNT2 FOR TEMPSERVER.db2admin.TEMPXX_PERSONACCOUNT;
CREATE VIEW SYS_PERSON AS
SELECT ... -- 省略欄位清單
FROM db2admin.TEMPXX_PERSON2, db2admin.TEMPXX_PERSONACCOUNT2
WHERE db2admin.TEMPXX_PERSON2.PERSONUUID = db2admin.TEMPXX_PERSONACCOUNT2.PERSONUUID;
-- 組織基本資料視圖
CREATE NICKNAME db2admin.TEMPXX_ORG2 FOR TEMPSERVER.db2admin.TEMPXX_ORG;
CREATE VIEW SYS_ORG AS ...;
-- 子系統與組織對應視圖
CREATE NICKNAME db2admin.TEMPXX_SYSORGSHORTCUT2 FOR TEMPSERVER.db2admin.TEMPXX_SYSORGSHORTCUT;
CREATE NICKNAME db2admin.TEMPXX_SYSTEM2 FOR TEMPSERVER.db2admin.TEMPXX_SYSTEM;
CREATE VIEW SYS_ORGSUBSYSREL AS ...;
-- 人員與組織對應視圖
CREATE NICKNAME db2admin.TEMPXX_ORGPERSON2 FOR TEMPSERVER.db2admin.TEMPXX_ORGPERSON;
CREATE VIEW SYS_ORGPERSON AS ...;
-- 人員與系統角色對應視圖
CREATE NICKNAME db2admin.TEMPXX_RIGHTSHORTCUT2 FOR TEMPSERVER.db2admin.TEMPXX_RIGHTSHORTCUT;
CREATE NICKNAME db2admin.TEMPXX_ROLE2 FOR TEMPSERVER.db2admin.TEMPXX_ROLE;
CREATE NICKNAME db2admin.TEMPXX_ROLEDISABLE2 FOR TEMPSERVER.db2admin.TEMPXX_ROLEDISABLE;
CREATE VIEW SYS_RIGHTSHORTCUT AS ...;
-- 人員與應用角色對應視圖
CREATE VIEW SYS_APPROLE_PERSON AS ...;
db2admin.)需與實際環境一致,異動帳號時請同步修改。EXCEPT 排除停用角色,確保權限資料準確。