「使用者應用程式」會使用資料庫執行各種任務,例如,儲存組態資料,以及為任何工作流程活動儲存資料。必須安裝和設定您平台所支援的其中一個資料庫,才能安裝 Roles Based Provisioning Module 和使用者應用程式。這包含:
安裝資料庫和資料庫驅動程式。
建立資料庫或資料庫例項。
記錄以下資料庫參數,以便在安裝使用者應用程式的過程中使用︰
主機和連接埠
資料庫名稱、使用者名稱和使用者密碼
建立指向資料庫的資料來源檔案。
安裝方法因應用程式伺服器而異。對於 JBoss,使用者應用程式安裝程式會建立指向資料庫的應用程式伺服器資料來源檔案,並依據 Identity Manager Roles Based Provisioning Module WAR 檔案的名稱命名該檔案。對於 WebSphere 和 WebLogic,應先手動設定資料來源,再進行安裝。
資料庫必須啟用 Unicode 編碼。
使用者應用程式要求資料庫字元集使用 Unicode 編碼。例如,UTF-8 便是一種使用 Unicode 編碼的字元集,而 Latin1 則不是。安裝使用者應用程式之前,請驗證您的資料庫已設定有使用 Unicode 編碼的字元集。
附註:如果要移轉到新版的 Roles Based Provisioning Module,必須使用之前安裝 (也就是您要移轉的安裝來源) 所使用的使用者應用程式資料庫。
使用者應用程式需要對 MySQL 設定某些組態選項,如下所述:
「使用者應用程式」使用了 INNODB 存放引擎,可讓您為 MySQL 選擇 INNODB 表格類型。如果您建立 MySQL 表格時沒有指定其表格類型,該表格就會預設使用 MyISAM 表格類型。若要確保您的 MySQL 伺服器使用 INNODB,請確認 my.cnf (Linux 或 Solaris) 或 my.ini (Windows) 包含下列選項:
default-table-type=innodb
不應該包含 skip-innodb 選項。
除了設定 default-table-type=innodb 選項之外,您還可以將 ENGINE=InnoDB 選項附加至資料庫 SQL 程序檔中的建立表格陳述式。
指定 UTF-8 做為整個伺服器或只有資料庫的字元集。 將下列選項納入 my.cnf (Linux 或 Solaris) 或 my.ini (Windows),以涵蓋整個伺服器的基礎來指定 UTF-8:
character_set_server=utf8
在建立資料庫期間,還可以使用下列指令來指定資料庫的字元集:
create database databasename character set utf8 collate utf8_bin;
如果您為資料庫設定了字元集,也必須在 IDM-ds.xml 檔案的 JDBC URL 中指定該字元集,如下所示:
<connection-url>jdbc:mysql://localhost:3306/databasename?useUnicode=true&characterEncoding=utf8&connectionCollation=utf8_bin</connection-url>
如果您打算備份和還原伺服器或平台之間的資料,則請確定各伺服器和各平台之間都一致地區分大小寫。若要確保一致性,請在您所有的 my.cnf (Linux 或 Solaris) 或 my.ini (Windows) 檔案中為 lower_case_table_names 指定相同的值 (0 或 1),而不要接受預設值 (Windows 預設為 0、Linux 預設為 1)。請先指定這個值,再建立資料庫來存放 Identity Manager 表格。例如,您可以針對所有想在其上備份和還原資料庫的平台,指定
lower_case_table_names=1
(在 my.cnf 和 my.ini 檔案中)。
您需要將 ansi 項目新增至 my.cnf (在 Linux 上) 或 my.ini 檔案 (在 Windows 上) 中。如果沒有新增此項目,RBPM 表格仍然會建立,但不會執行表格的初始資料載入,而且您可能還會看到找不到訪客容器頁面定義
的錯誤訊息。
以下便是新增 ansi 項目後 my.cnf (或 my.ini) 檔案中包含的內容︰
# These variables are required for IDM User Application character_set_server=utf8 default-table-type=innodb # Put the server in ANSI SQL mode. #See http://www.mysql.com/doc/en/ANSI_mode.html ansi
若要確認已變更為使用 ansi 模式,可以在您的 MySQL 伺服器上執行以下 SQL 陳述式︰
mysql> select @@global.sql_mode; +-------------------------------------------------------------+ | @@global.sql_mode | +-------------------------------------------------------------+ | REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI | +-------------------------------------------------------------+ 1 row in set (0.00 sec)
安裝期間使用的使用者帳戶對使用者應用程式使用的資料庫必須具有完全存取權限 (擁有者)。此外,此帳戶還需要具備對系統中表格的存取權限。不同環境下,表格可能會有所不同。
建立使用者以登入 MySQL 伺服器,並將權限授予該使用者,例如︰
GRANT ALL PRIVILEGES ON <資料庫名稱.>* TO <使用者名稱>@<主機> IDENTIFIED BY '密碼'
最小權限組為 CREATE、INDEX、INSERT、UPDATE、DELETE 與 LOCK TABLES。 如需 GRANT 指令的文件,請參閱 http://www.mysql.org/doc/refman/5.0/en/grant.html。
重要:使用者帳戶還必須具有 mysql.user 表格的選取權限。以下是授予適當權限所使用的 SQL 語法︰
USE mysql; GRANT SELECT ON mysql.user TO <username>@<host>;
建立 Oracle 資料庫時,請務必使用 AL32UTF8 來指定 Unicode 編碼的字元集。(請參閱 AL32UTF8。)
建立 Oracle 資料庫的使用者時,需要使用 SQL Plus 公用程式發出以下陳述式。這些陳述式會建立使用者並設定使用者的權限。授予使用者 CONNECT 與 RESOURCE 權限,例如︰
CREATE USER IDM 使用者 IDENTIFIED BY 密碼
GRANT CONNECT, RESOURCE to IDM 使用者
Oracle 11g 上的 UTF-8。 在 Oracle 11g 上,可以發出以下指令,以確認您已啟用 UTF-8︰
select * from nls_database_parameters;
如果未設定 UTF-8,會傳回以下資料︰
NLS_CHARACTERSET WE8MSWIN1252
如果已設定 UTF-8,則會傳回以下資料︰
NLS_CHARACTERSET AL32UTF8
按以下步驟設定 MS SQL Server 資料庫︰
安裝 MS SQL 伺服器。
連接到伺服器,並開啟用來建立資料庫與資料庫使用者的應用程式 (一般為 SQL Server Management Studio 應用程式)。
建立資料庫。SQL 伺服器不允許使用者選取資料庫使用的字元集。 使用者應用程式在支援 UTF-8 的 NCHAR 欄類型中儲存 SQL Server 字元資料。
建立登入。
將登入新增為資料庫的使用者。
將這些權限授予登入:CREATE TABLE、CREATE INDEX、SELECT、INSERT、UPDATE 與 DELETE。
使用者應用程式需要 3.0.3.0.1119.0 版的 Microsoft SQL Server 2008 JDBC 驅動程式。請注意,正式對此 JDBC 驅動程式提供支援的只有 Sun Solaris、Red Hat Linux 以及 Windows 2000 或更新版本的作業系統。
本節提供 DB2 組態設定的說明。
安裝期間,需要選取「
」螢幕中的資料庫驅動程式 JAR 檔案。不過,「 」欄位的瀏覽按鈕僅允許您選取一個 (1) jar。但對於 DB2,必須提供兩 (2) 個 jar︰db2jcc.jar
db2jcc_license_cu.jar
因此,如果在 WebSphere (DB2 唯一支援的應用程式伺服器) 上執行安裝程式,您可以選取其中一個 jar,但第二個 JAR 必須手動輸入,並使用執行安裝程式之作業系統所適用的正確檔案分隔符。您也可以手動輸入兩個項目。
例如,在 Windows 上:
c:\db2jars\db2jcc.jar;c:\db2jars\db2jcc_license_cu.jar
例如,在 Solaris 和 Linux 上︰
/home/lab/db2jars/db2jcc.jar:/home/lab/db2jcc_license_cu.jar
使用 DB2 時,如果遇到指示因鎖死或逾時已復原目前交易的錯誤,則問題可能是由於高階使用者與資料庫並行處理造成。
DB2 提供許多技術可解決鎖定衝突,包括微調成本最佳程式。《DB2 管理》文件中的效能指南是極佳的資訊來源,包含豐富的微調主題資訊。
沒有指示自從發生層級和資料大小變更後用於所有安裝的微調值。但是,在此有一些與您的安裝有關的 DB2 微調提示:
reorgchk update statistics 命令將更新最佳化工具使用的統計資料。 定期更新這些統計資料便足以減輕這個問題。
透過不鎖定已插入或更新列的下一個索引鍵來使用 DB2 登錄參數 DB2_RR_TO_RS,可改善發生狀況。
在資料庫中增加 MAXLOCKS 和 LOCKLIST 參數。
在資料庫連接集區中增加 currentLockTimeout 內容。
使用「資料庫組態顧問」,並最佳化以加快異動速度。
將所有的「使用者應用程式」表改變為 VOLATILE,以讓最佳化程式了解,表格基數將明顯改變。例如,若要將 AFACTIVITY 表變成 VOLATILE 表,您可發出命令:ALTER TABLE AFACTIVITY VOLATILE
在「使用者應用程式」已啟動且資料庫表已建立後,必須執行 ALTER TABLE 命令。如需此陳述式的詳細資訊,請參閱 ALTER TABLE 文件。以下是所有「使用者應用程式」表的 SQL 陳述式:
ALTER TABLE AFACTIVITY VOLATILE ALTER TABLE AFACTIVITYTIMERTASKS VOLATILE ALTER TABLE AFBRANCH VOLATILE ALTER TABLE AFCOMMENT VOLATILE ALTER TABLE AFDOCUMENT VOLATILE ALTER TABLE AFENGINE VOLATILE ALTER TABLE AFENGINESTATE VOLATILE ALTER TABLE AFMODEL VOLATILE ALTER TABLE AFPROCESS VOLATILE ALTER TABLE AFPROVISIONINGSTATUS VOLATILE ALTER TABLE AFQUORUM VOLATILE ALTER TABLE AFRESOURCEREQUESTINFO VOLATILE ALTER TABLE AFWORKTASK VOLATILE ALTER TABLE AF_ROLE_REQUEST_STATUS VOLATILE ALTER TABLE ATTESTATION_ATTESTER VOLATILE ALTER TABLE ATTESTATION_ATTRIBUTE VOLATILE ALTER TABLE ATTESTATION_QUESTION VOLATILE ALTER TABLE ATTESTATION_REPORT VOLATILE ALTER TABLE ATTESTATION_REQUEST VOLATILE ALTER TABLE ATTESTATION_RESPONSE VOLATILE ALTER TABLE ATTESTATION_SURVEY_QUESTION VOLATILE ALTER TABLE ATTESTATION_TARGET VOLATILE ALTER TABLE AUTHPROPS VOLATILE ALTER TABLE DATABASECHANGELOG VOLATILE ALTER TABLE DATABASECHANGELOGLOCK VOLATILE ALTER TABLE DSS_APPLET_BROWSER_TYPES VOLATILE ALTER TABLE DSS_APPLET_CFG VOLATILE ALTER TABLE DSS_APPLET_CFG_MAP VOLATILE ALTER TABLE DSS_BROWSER_TYPE VOLATILE ALTER TABLE DSS_CONFIG VOLATILE ALTER TABLE DSS_EXT_KEY_USAGE_RESTRICTION VOLATILE ALTER TABLE DSS_USR_POLICY_SET VOLATILE ALTER TABLE JBM_COUNTER VOLATILE ALTER TABLE JBM_DUAL VOLATILE ALTER TABLE JBM_ID_CACHE VOLATILE ALTER TABLE JBM_MSG VOLATILE ALTER TABLE JBM_MSG_REF VOLATILE ALTER TABLE JBM_POSTOFFICE VOLATILE ALTER TABLE JBM_ROLE VOLATILE ALTER TABLE JBM_TX VOLATILE ALTER TABLE JBM_USER VOLATILE ALTER TABLE PORTALCATEGORY VOLATILE ALTER TABLE PORTALPORTLETHANDLES VOLATILE ALTER TABLE PORTALPORTLETSETTINGS VOLATILE ALTER TABLE PORTALPRODUCERREGISTRY VOLATILE ALTER TABLE PORTALPRODUCERS VOLATILE ALTER TABLE PORTALREGISTRY VOLATILE ALTER TABLE PROFILEGROUPPREFERENCES VOLATILE ALTER TABLE PROFILEUSERPREFERENCES VOLATILE ALTER TABLE PROVISIONING_CODE_MAP VOLATILE ALTER TABLE PROVISIONING_CODE_MAP_LABEL VOLATILE ALTER TABLE PROVISIONING_VIEW_VALUE VOLATILE ALTER TABLE PROVISIONING_VIEW_VALUE_LABEL VOLATILE ALTER TABLE SECURITYACCESSRIGHTS VOLATILE ALTER TABLE SECURITYPERMISSIONMETA VOLATILE ALTER TABLE SECURITYPERMISSIONS VOLATILE ALTER TABLE SEC_DELPROXY_CFG VOLATILE ALTER TABLE SEC_DELPROXY_SRV_CFG VOLATILE ALTER TABLE SEC_SYNC_CLEANUP_QUEUE VOLATILE