设置 Oracle 数据库
设置 Oracle 数据库以使用 Jazz ® Team Server, ELM 应用程序和数据仓库。
开始之前
- 要创建并设置 Oracle 数据库,准备此数据库的用户必须对此数据库具有数据库管理权限,并且此数据库、表空间存储器和相应存储配置由具有系统管理权限的用户创建。
- 必需的 Java 数据库连接 (JDBC) 驱动程序为 ojdbc8.jar。限制: 由于 Oracle JDBC 驱动程序 12.1.0.2.0中存在缺陷,因此无法使用此版本的驱动程序。 有关详细信息,请参阅 IBM 支持门户网站页面上的 repotools -createTables command fails with ORA-01000 on Oracle 12。
- 有关受支持的数据库版本和 JDBC 驱动程序的列表,请参阅 硬件和软件需求。
- 本主题中使用的配置参数和表空间选项是示例,可能并不完全适用于您的环境。 例如,如果您无法使用 AUTOEXTEND 设置,那么文件必须足够大以允许内容增加。 或者,如果无法对 Jazz Team Server 数据库用户使用 UNLIMITED 大小配额,请确保有足够的空间以备数据库快速增大。
- 如果在同一台计算机或分布式平台上安装 IBM® Engineering Lifecycle Management 应用程序,那么可以为每个应用程序创建单独的数据库,也可以对所有应用程序使用相同的数据库。 但是,必须为每个应用程序创建一个不同的表空间以及一个与该表空间相关联的数据库用户。
- 本主题中的示例针对一个 Oracle 数据库,对于每个应用程序,此数据库都有相应的专用数据库用户。
- 您为 Jazz Team Server 和所有 ELM 应用程序创建的数据库必须格式化为使用 UTF-8 作为字符集。 缺省情况下,Oracle 不创建使用 UTF-8 字符集的数据库。 您创建新数据库时,请确保在 Oracle 数据库设置中选择 AL32UTF8。
- 变更打开的光标数限制:
- 如果使用 spfile 启动数据库,请打开 SQL *Plus 窗口并输入以下命令:
alter system set open_cursors = 10000 scope=both; - 如果使用 pfile 启动数据库,请打开 SQL *Plus 窗口并输入以下命令:
alter system set open_cursors = 10000;
- 如果使用 spfile 启动数据库,请打开 SQL *Plus 窗口并输入以下命令:
过程
- 作为系统管理员,为 Jazz Team Server 和所有应用程序创建使用 UTF-8 编码的数据库。
- 启动 "数据库配置助手" 向导,然后在 "欢迎" 页面上单击 下一步。
- 在 " 操作 " 页面上,选择 创建数据库 ,然后单击 下一步。
- 在 " 模板 " 页面上,选择 定制数据库 ,然后单击 下一步。
- 在 全局数据库名称 和 SID 字段中,输入内容存储数据库的名称; 例如, ELMDB。 单击下一步。
- 要配置数据库控制,请为警报通知输入必需的信息并可以选择启用每日磁盘备份调度。 要继续但不配置数据库控制,请清除配置企业管理器旁边的复选框,然后单击下一步。
- 在 " 数据库凭证 " 页面上,选择用户帐户的选项,然后单击 下一步。注: Oracle 密码复杂性策略要求密码长度至少为 12 个字符。 另外,密码必须至少包含一个大写字符、一个小写字符和一个数字。 如果您的密码包含特殊字符、多字节字符,或者以数字或特殊字符开头,那么必须将其括在双引号中。 有关详细信息,请参阅 Oracle 文档。
- 在下一页上,选择数据库文件的存储类型和位置。 单击下一步。
- 在下一页上,选择数据库的恢复选项,然后单击 下一步。
- 在下一页上,指定是否将“样本模式”添加到数据库中。 单击下一步。
- 在下一页上,单击 字符集 选项卡,然后选择 使用 Unicode (AL32UTF8)。 单击下一步。注: 将字符集设置为 Unicode (AL32UTF8) 使您能够存储多个语言组。
- 在 " 数据库存储器 " 页面上,验证或更改数据库对象,然后单击 下一步。
- 在下一页上,单击 完成 以创建数据库。
- 在打开的 " 确认 " 窗口中, (可选) 将页面另存为 HTML 文件,然后单击 确定。这时,将显示一个进度条,用来显示数据库创建进度。
- 打开 SQL *Plus 窗口并以 SYSTEM 或 SYSDBA身份登录。
要为 Jazz Team Server创建表空间,请输入以下命令。 将 JTS 替换为表空间名称,将 ORACLE_BASE 替换为 Oracle 安装位置的绝对路径,将 ELMDB 替换为您在步骤 1 中创建的数据库名称,并将 JTS.DBF 替换为您要创建的数据文件名称。
CREATE BIGFILE TABLESPACE JTS DATAFILE 'ORACLE_BASE/oradata/ELMDB/JTS.DBF' SIZE 1G AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE;要为 Jazz Team Server创建临时表空间,请输入以下命令。 将 JTS_TEMP 替换为临时表空间名称,将 ORACLE_BASE 替换为 Oracle 安装位置的绝对路径,将 ELMDB 替换为您在步骤 1 中创建的数据库名称,并将 JTS_TEMP.DBF 替换为您要创建的临时文件名称。CREATE TEMPORARY TABLESPACE JTS_TEMP TEMPFILE 'ORACLE_BASE/oradata/ELMDB/JTS_TEMP.DBF' SIZE 20M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;要为“变更和配置管理”应用程序创建表空间,请输入以下命令。 将 CCM 替换为表空间名称,将 ORACLE_BASE 替换为 Oracle 安装位置的绝对路径,将 ELMDB 替换为您在步骤 1 中创建的数据库名称,并将 CCM.DBF 替换为您要创建的数据文件名称。
CREATE BIGFILE TABLESPACE CCM DATAFILE 'ORACLE_BASE/oradata/ELMDB/CCM.DBF' SIZE 1G AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE;要为“变更和配置管理”应用程序创建临时表空间,请输入以下命令。 将 CCM_TEMP 替换为临时表空间名称,将 ORACLE_BASE 替换为 Oracle 安装位置的绝对路径,将 ELMDB 替换为您在步骤 1 中创建的数据库名称,并将 CCM_TEMP.DBF 替换为您要创建的临时文件名称。CREATE TEMPORARY TABLESPACE CCM_TEMP TEMPFILE 'ORACLE_BASE/oradata/ELMDB/CCM_TEMP.DBF' SIZE 20M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;要为“质量管理”应用程序创建表空间,请输入以下命令。 将 QM 替换为表空间名称,将 ORACLE_BASE 替换为 Oracle 安装位置的绝对路径,将 ELMDB 替换为您在步骤 1 中创建的数据库名称,并将 QM.DBF 替换为您要创建的数据文件名称。
CREATE BIGFILE TABLESPACE QM DATAFILE 'ORACLE_BASE/oradata/ELMDB/QM.DBF' SIZE 1G AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE;要为“质量管理”应用程序创建临时表空间,请输入以下命令。 将 QM_TEMP 替换为临时表空间名称,将 ORACLE_BASE 替换为 Oracle 安装位置的绝对路径,将 ELMDB 替换为您在步骤 1 中创建的数据库名称,并将 QM_TEMP.DBF 替换为您要创建的临时文件名称。CREATE TEMPORARY TABLESPACE QM_TEMP TEMPFILE 'ORACLE_BASE/oradata/ELMDB/QM_TEMP.DBF' SIZE 20M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;要为Engineering Requirements Management DOORS® Next应用程序创建表空间,请输入以下命令。 将 RM 替换为表空间名称,将 ORACLE_BASE 替换为 Oracle 安装位置的绝对路径,将 ELMDB 替换为您在步骤 1 中创建的数据库名称,并将 RM.DBF 替换为您要创建的数据文件名称。
CREATE BIGFILE TABLESPACE RM DATAFILE 'ORACLE_BASE/oradata/ELMDB/RM.DBF' SIZE 1G AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE;要为Engineering Requirements Management DOORS Next应用程序创建临时表空间,请输入以下命令。 将 RM_TEMP 替换为临时表空间名称,将 ORACLE_BASE 替换为 Oracle 安装位置的绝对路径,将 ELMDB 替换为您在步骤 1 中创建的数据库名称,并将 RM_TEMP.DBF 替换为您要创建的临时文件名称。CREATE TEMPORARY TABLESPACE RM_TEMP TEMPFILE 'ORACLE_BASE/oradata/ELMDB/RM_TEMP.DBF' SIZE 20M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;要为 Data Collection Component 应用程序创建表空间,请输入以下命令。 请将 DCC 替换为表空间名称,将 ORACLE_BASE 替换为 Oracle 安装位置的绝对路径,将 ELMDB 替换为您在步骤 1 中创建的数据库的名称,并将 DCC.DBF 替换为所要创建的数据文件的名称。
CREATE BIGFILE TABLESPACE DCC DATAFILE 'ORACLE_BASE/oradata/ELMDB/DCC.DBF' SIZE 1G AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE;要为 Data Collection Component 应用程序创建临时表空间,请输入以下命令。 请将 DCC_TEMP 替换为临时表空间名称,将 ORACLE_BASE 替换为 Oracle 安装位置的绝对路径,将 ELMDB 替换为您在步骤 1 中创建的数据库的名称,并将 DCC_TEMP.DBF 替换为所要创建的临时文件的名称。CREATE TEMPORARY TABLESPACE DCC_TEMP TEMPFILE 'ORACLE_BASE/oradata/ELMDB/DCC_TEMP.DBF' SIZE 20M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;要为 Lifecycle Query Engine 应用程序创建表空间,请输入以下命令。 请将 LQE 替换为表空间名称,将 ORACLE_BASE 替换为 Oracle 安装位置的绝对路径,将 ELMDB 替换为您在步骤 1 中创建的数据库的名称,并将 LQE.DBF 替换为所要创建的数据文件的名称。
CREATE BIGFILE TABLESPACE LQE DATAFILE 'ORACLE_BASE/oradata/ELMDB/LQE.DBF' SIZE 1G AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE;要为 Lifecycle Query Engine 应用程序创建临时表空间,请输入以下命令。 请将 LQE_TEMP 替换为临时表空间名称,将 ORACLE_BASE 替换为 Oracle 安装位置的绝对路径,将 ELMDB 替换为您在步骤 1 中创建的数据库的名称,并将 LQE_TEMP.DBF 替换为所要创建的临时文件的名称。CREATE TEMPORARY TABLESPACE LQE_TEMP TEMPFILE 'ORACLE_BASE/oradata/ELMDB/LQE_TEMP.DBF' SIZE 20M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;要为“链接索引提供程序”应用程序创建表空间,请输入以下命令。 请将 LDX 替换为表空间名称,将 ORACLE_BASE 替换为 Oracle 安装位置的绝对路径,将 ELMDB 替换为您在步骤 1 中创建的数据库的名称,并将 LDX.DBF 替换为所要创建的数据文件的名称。
CREATE BIGFILE TABLESPACE LDX DATAFILE 'ORACLE_BASE/oradata/ELMDB/LDX.DBF' SIZE 1G AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE;要为“链接索引提供程序”应用程序创建临时表空间,请输入以下命令。 请将 LDX_TEMP 替换为临时表空间名称,将 ORACLE_BASE 替换为 Oracle 安装位置的绝对路径,将 ELMDB 替换为您在步骤 1 中创建的数据库的名称,并将 LDX_TEMP.DBF 替换为所要创建的临时文件的名称。CREATE TEMPORARY TABLESPACE LDX_TEMP TEMPFILE 'ORACLE_BASE/oradata/ELMDB/LDX_TEMP.DBF' SIZE 20M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;要为 IBM Engineering Lifecycle Optimization - Engineering Insights 应用程序创建表空间,请输入以下命令。 请将 ENI 替换为表空间名称,将 ORACLE_BASE 替换为 Oracle 安装位置的绝对路径,将 ELMDB 替换为您在步骤 1 中创建的数据库的名称,并将 ENI.DBF 替换为所要创建的数据文件的名称。
CREATE BIGFILE TABLESPACE ENI DATAFILE 'ORACLE_BASE/oradata/ELMDB/ENI.DBF' SIZE 1G AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE;要为 IBM Engineering Lifecycle Optimization - Engineering Insights 应用程序创建临时表空间,请输入以下命令。 请将 ENI_TEMP 替换为临时表空间名称,将 ORACLE_BASE 替换为 Oracle 安装位置的绝对路径,将 ELMDB 替换为您在步骤 1 中创建的数据库的名称,并将 ENI_TEMP.DBF 替换为所要创建的临时文件的名称。CREATE TEMPORARY TABLESPACE ENI_TEMP TEMPFILE 'ORACLE_BASE/oradata/ELMDB/ENI_TEMP.DBF' SIZE 20M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;要为全局配置管理应用程序创建表空间,请输入以下命令。 请将 GC 替换为表空间名称,将 ORACLE_BASE 替换为 Oracle 安装位置的绝对路径,将 ELMDB 替换为您在步骤 1 中创建的数据库的名称,并将 GC.DBF 替换为所要创建的数据文件的名称。
CREATE BIGFILE TABLESPACE GC DATAFILE 'ORACLE_BASE/oradata/ELMDB/GC.DBF' SIZE 1G AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE;要为全局配置管理应用程序创建临时表空间,请输入以下命令。 请将 GC_TEMP 替换为临时表空间名称,将 ORACLE_BASE 替换为 Oracle 安装位置的绝对路径,将 ELMDB 替换为您在步骤 1 中创建的数据库的名称,并将 GC_TEMP.DBF 替换为所要创建的临时文件的名称。CREATE TEMPORARY TABLESPACE GC_TEMP TEMPFILE 'ORACLE_BASE/oradata/ELMDB/GC_TEMP.DBF' SIZE 20M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;要为公共数据仓库创建表空间,请输入以下命令。 将 DW 替换为表空间名称,将 ORACLE_BASE 替换为 Oracle 安装位置的绝对路径,将 ELMDB 替换为您在步骤 1 中创建的数据库名称,并将 DW.DBF 替换为您要创建的数据文件名称。
CREATE BIGFILE TABLESPACE DW DATAFILE 'ORACLE_BASE/oradata/ELMDB/DW.DBF' SIZE 1G AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE;要为公共数据仓库创建临时表空间,请输入以下命令。 将 DW_TEMP 替换为临时表空间名称,将 ORACLE_BASE 替换为 Oracle 安装位置的绝对路径,将 ELMDB 替换为您在步骤 1 中创建的数据库名称,并将 DW_TEMP.DBF 替换为您要创建的临时文件名称。CREATE TEMPORARY TABLESPACE DW_TEMP TEMPFILE 'ORACLE_BASE/oradata/ELMDB/DW_TEMP.DBF' SIZE 20M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;在 Oracle Enterprise Manager 数据库控制中,单击 服务器 > 表空间 ,并验证您创建的表空间是否显示且可访问。 另请确保名为 USERS 的缺省 Oracle 表空间已经存在。 如果 Oracle 数据库中不存在此表空间,请创建该表空间。
- 为每个新的表空间创建一个 Oracle 数据库用户。
创建表空间之后,必须为每一个应用程序创建一个特殊 Oracle 用户以使用 Oracle 数据库。 对于运行在一个 Oracle 数据库上的多个 Jazz 服务器,必须为每一个应用程序创建一个 Oracle 数据库用户。 这个 Oracle 数据库用户必须能够在其表空间(不受限或者具有空间配额)中使用创建会话、表、过程和视图的特权创建数据库对象。
要为 Jazz Team Server 表空间创建用户并授予必需的许可权,请输入以下命令:CREATE USER JTS_DB_USER IDENTIFIED BY Passw0rd DEFAULT TABLESPACE JTS QUOTA UNLIMITED ON JTS TEMPORARY TABLESPACE JTS_TEMP;GRANT CREATE PROCEDURE, CREATE SESSION, CREATE TABLE, CREATE VIEW TO JTS_DB_USER;要为变更和配置管理应用程序表空间创建用户并授予必需的许可权,请输入以下命令:CREATE USER CCM_DB_USER IDENTIFIED BY Passw0rd DEFAULT TABLESPACE CCM QUOTA UNLIMITED ON CCM TEMPORARY TABLESPACE CCM_TEMP;GRANT CREATE PROCEDURE, CREATE SESSION, CREATE TABLE, CREATE VIEW TO CCM_DB_USER;要为“质量管理”应用程序表空间创建用户并授予必需的许可权,请输入以下命令:CREATE USER QM_DB_USER IDENTIFIED BY Passw0rd DEFAULT TABLESPACE QM QUOTA UNLIMITED ON QM TEMPORARY TABLESPACE QM_TEMP;GRANT CREATE PROCEDURE, CREATE SESSION, CREATE TABLE, CREATE VIEW TO QM_DB_USER;要为Engineering Requirements Management DOORS Next应用程序表空间创建用户并授予所需权限,请输入以下命令:CREATE USER RM_DB_USER IDENTIFIED BY Passw0rd DEFAULT TABLESPACE RM QUOTA UNLIMITED ON RM TEMPORARY TABLESPACE RM_TEMP;GRANT CREATE PROCEDURE, CREATE SESSION, CREATE TABLE, CREATE VIEW TO RM_DB_USER;要为 Data Collection Component 应用程序表空间创建用户并授予必需的许可权,请输入以下命令:CREATE USER DCC_DB_USER IDENTIFIED BY Passw0rd DEFAULT TABLESPACE DCC QUOTA UNLIMITED ON DCC TEMPORARY TABLESPACE DCC_TEMP;GRANT CREATE PROCEDURE, CREATE SESSION, CREATE TABLE, CREATE VIEW TO DCC_DB_USER;要为 Lifecycle Query Engine 应用程序表空间创建用户并授予必需的许可权,请输入以下命令:CREATE USER LQE_DB_USER IDENTIFIED BY Passw0rd DEFAULT TABLESPACE LQE QUOTA UNLIMITED ON LQE TEMPORARY TABLESPACE LQE_TEMP;GRANT CREATE PROCEDURE, CREATE SESSION, CREATE TABLE, CREATE VIEW TO LQE_DB_USER;要为链接索引提供程序应用程序表空间创建用户并授予必需的许可权,请输入以下命令:CREATE USER LDX_DB_USER IDENTIFIED BY Passw0rd DEFAULT TABLESPACE LDX QUOTA UNLIMITED ON LDX TEMPORARY TABLESPACE LDX_TEMP;GRANT CREATE PROCEDURE, CREATE SESSION, CREATE TABLE, CREATE VIEW TO LDX_DB_USER;要为 IBM Engineering Lifecycle Optimization - Engineering Insights 应用程序表空间创建用户并授予所需的许可权,请输入以下命令:CREATE USER ENI_DB_USER IDENTIFIED BY Passw0rd DEFAULT TABLESPACE ENI QUOTA UNLIMITED ON ENI TEMPORARY TABLESPACE ENI_TEMP;GRANT CREATE PROCEDURE, CREATE SESSION, CREATE TABLE, CREATE VIEW TO ENI_DB_USER;要为“全局配置管理”应用程序表空间创建用户并授予必需的许可权,请输入以下命令:CREATE USER GC_DB_USER IDENTIFIED BY Passw0rd DEFAULT TABLESPACE GC QUOTA UNLIMITED ON GC TEMPORARY TABLESPACE GC_TEMP;GRANT CREATE PROCEDURE, CREATE SESSION, CREATE TABLE, CREATE VIEW TO GC_DB_USER;要为公共数据仓库表空间创建用户并授予必需的许可权,请输入以下命令:CREATE USER DW_USER IDENTIFIED BY Passw0rd DEFAULT TABLESPACE DW QUOTA UNLIMITED ON DW TEMPORARY TABLESPACE DW_TEMP;GRANT DBA TO DW_USER;注: 与其他数据库相比,在 Oracle 上创建数据仓库需要更多许可权。 您在数据仓库的连接规范中指定数据库用户时,请确保该数据库用户具有 DBA 许可权。 您可以在创建数据仓库之后变更此权限。 有关更多信息,请参阅完成安装。要在不具有 DBA 许可权的情况下创建数据仓库,请参阅此 Deployment Wiki 文章。
- 创建名为 ORACLE_JDBC_DRIVER_FILE 的环境变量并指向 ojdbc8.jar JDBC 驱动程序。 该位置可能因 Oracle 产品和操作系统的不同而有所变化。 您可以从 Oracle Web 站点下载受支持的 Oracle JDBC 驱动程序。
单击 启动 > 控制面板 > 系统。- 单击 高级 选项卡,然后单击 环境变量。
- 在 系统变量 列表中,单击 新建。
- 在 变量名 中输入 ORACLE_JDBC_DRIVER_FILE,在 变量值 中输入 C:\<Path_to_JDBC_driver>\ojdbc8.jar, 其中 <Path_to_JDBC_driver> 是托管应用程序而不是数据库的计算机的文件路径。
在 UNIX 系统上,添加以下环境变量声明:export ORACLE_JDBC_DRIVER_FILE =/Path_to_JDBC_driver/ojdbc8.jar注: 有关 Java 运行时环境和 Oracle Java 数据库连接 (JDBC) 的受支持版本的列表,请参阅 硬件和软件需求。如果您正在使用 WebSphere® Application Server,那么还必须添加指向 JDBC 驱动程序的定制属性。 有关更多信息,请参阅 设置 WebSphere Application Server。
- 要配置数据库连接并创建数据库表,请完成下列其中一个步骤:
- 如果您正在使用 WebSphere Liberty,请启动服务器并继续执行 使用设置向导中的定制设置来运行设置。
- 如果要部署 WebSphere Application Server,请参阅 部署和启动 WebSphere Application Server,然后继续执行 使用设置向导中的 "定制设置" 运行设置。
- 如果您希望手动修改数据库连接的 teamserver.properties 文件并运行 repotools 命令以创建数据库表,请参阅 手动配置 Oracle 数据库。
- 如果您正在从先前版本进行升级,请接着运行相应的升级脚本,这些脚本将迁移现有的数据库连接。
注:您可以将 "optimizer_use_sql_plan_baselines参数设置为 "false,以提高性能。
设置 Jazz Authorization Server Oracle 数据库
Jazz Authorization Server 配置为使用缺省 Apache Derby 数据库,但您可能希望在 Jazz Authorization Server 环境中使用企业数据库 (例如 Oracle )。
过程
- 创建名为 createOauthOracle.sql的文件。 请参阅以下 SQL 示例以创建 Jazz Authorization Server所需的表空间。
请注意,这些值是示例,您应根据自己的使用情况和环境加以变更。
createOauthOracle.sql 会创建两个表空间:OAUTH 和 OAUTH_TMP,并且会在 OAUTH 表空间中创建表。 如果您要使用现有的表空间,您可将 CREATE TABLE 语句变更为使用现有表空间。 如果要创建新的表空间,您应编辑 DATAFILE 和 TEMPFILE 子句,使其指向要用于该表空间的目录。
Jazz Authorization Server 期望找到名为 OAUTHDBSCHEMA的用户,并且期望在名为 OAUTHDBSCHEMA的模式中找到表。 您必须在 Oracle 中创建 OAUTHDBSCHEMA 用户。 请定制 CREATE USER 语句,以指定 OAUTHDBSCHEMA 用户的密码。 创建 OAUTHDBSCHEMA 用户时,还必须使该用户与您计划用于 OAUTH 表的表空间相关联。
CREATE TABLESPACE OAUTH DATAFILE '/home/oracle/tablespaces/OAUTH.dbf' SIZE 1G AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE; CREATE TEMPORARY TABLESPACE OAUTH_TMP TEMPFILE '/home/oracle/tablespaces/OAUTH_TMP.dbf' SIZE 20M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M; CREATE USER OAUTHDBSCHEMA IDENTIFIED BY <your password> DEFAULT TABLESPACE OAUTH QUOTA UNLIMITED ON OAUTH TEMPORARY TABLESPACE OAUTH_TMP; GRANT CREATE PROCEDURE, CREATE SESSION, CREATE TABLE, CREATE VIEW TO OAUTHDBSCHEMA; ---- CREATE TABLES ---- CREATE TABLE OAuthDBSchema.OAUTH20CACHE ( LOOKUPKEY VARCHAR(256) NOT NULL, UNIQUEID VARCHAR(128) NOT NULL, COMPONENTID VARCHAR(256) NOT NULL, TYPE VARCHAR(64) NOT NULL, SUBTYPE VARCHAR(64), CREATEDAT NUMBER(19,0), LIFETIME INT, EXPIRES NUMBER(19,0), TOKENSTRING CLOB DEFAULT ‘{}’ NOT NULL, CLIENTID VARCHAR(64) NOT NULL, USERNAME VARCHAR(64) NOT NULL, SCOPE VARCHAR(512) NOT NULL, REDIRECTURI VARCHAR(2048), STATEID VARCHAR(64) NOT NULL, EXTENDEDFIELDS CLOB DEFAULT '{}' NOT NULL ) TABLESPACE OAUTH STORAGE(INITIAL 50K); CREATE TABLE OAuthDBSchema.OAUTH20CLIENTCONFIG ( COMPONENTID VARCHAR(256) NOT NULL, CLIENTID VARCHAR(256) NOT NULL, CLIENTSECRET VARCHAR(256), DISPLAYNAME VARCHAR(256), REDIRECTURI VARCHAR(2048), ENABLED INT, CLIENTMETADATA CLOB DEFAULT '{}' NOT NULL ) TABLESPACE OAUTH STORAGE(INITIAL 50K); CREATE TABLE OAuthDBSchema.OAUTH20CONSENTCACHE ( CLIENTID VARCHAR(256) NOT NULL, USERID VARCHAR(256), PROVIDERID VARCHAR(256) NOT NULL, SCOPE VARCHAR(1024) NOT NULL, EXPIRES NUMBER(19,0), EXTENDEDFIELDS CLOB DEFAULT '{}' NOT NULL ) TABLESPACE OAUTH STORAGE(INITIAL 50K); ---- ADD CONSTRAINTS ---- ALTER TABLE OAuthDBSchema.OAUTH20CACHE ADD CONSTRAINT PK_LOOKUPKEY PRIMARY KEY (LOOKUPKEY); ALTER TABLE OAuthDBSchema.OAUTH20CLIENTCONFIG ADD CONSTRAINT PK_COMPIDCLIENTID PRIMARY KEY (COMPONENTID,CLIENTID); ---- CREATE INDEXES ---- CREATE INDEX OAUTH20CACHE_EXPIRES ON OAuthDBSchema.OAUTH20CACHE (EXPIRES ASC); ---- GRANT PRIVILEGES ---- ---- UNCOMMENT THE FOLLOWING IF YOU USE AN ACCOUNT OTHER THAN ADMINISTRATOR FOR DB ACCESS ---- -- Change dbuser to the account you want to use to access your database GRANT ALL ON OAuthDBSchema.OAUTH20CACHE TO OAUTHDBSCHEMA; GRANT ALL ON OAuthDBSchema.OAUTH20CLIENTCONFIG TO OAUTHDBSCHEMA; GRANT ALL ON OAuthDBSchema.OAUTH20CONSENTCACHE TO OAUTHDBSCHEMA; ---- END OF GRANT PRIVILIGES ---- - 完成定制 createOauthOracle.sql 脚本后,打开 SQL Plus 并以 SYSDBA身份登录,然后运行 SQL 脚本:
@createOauthOracle.sql - 创建数据库表之后,必须配置 Jazz Authorization Server 以使用这些表。 转至 Jazz Authorization Server 安装目录,然后打开 appConfig.xml 文件以进行编辑。 在 Windows 上, appConfig.xml 文件的缺省路径为 C:\IBM\JazzAuthServer\wlp\usr\servers\jazzop ,在 Linux 上,缺省路径为 /opt/IBM/JazzAuthServer/wlp/usr/servers/jazzop。
- 注释掉以下 Apache Derby 数据库节:
<dataSource id="OAuthFvtDataSource" jndiName="jdbc/OAuth2DB"> <jdbcDriver libraryRef="DerbyLib" /> <properties.derby.embedded databaseName="asDB" createDatabase="create" /> </dataSource> <library id="DerbyLib"> <fileset dir="${shared.config.dir}/lib/global" includes="derby.jar" /> </library> - 添加下一节,以配置 Oracle。 您必须对此节进行定制,以使用您特定的 Oracle 服务器:
<jdbcDriver id="oracle" libraryRef="ORAJCC4LIB"/> <library id="ORAJCC4LIB" filesetRef="orajcc4" apiTypeVisibility="spec,ibm-api,third-party"/> <fileset dir="${shared.config.dir}/lib/global" id="orajcc4" includes="ojdbc8.jar"/> <dataSource id="OAUTH2ORA" jndiName="jdbc/oauthProvider" jdbcDriverRef="oracle"> <properties.oracle password="*****" databaseName="ORCL" user="OAUTHDBSCHEMA" portNumber="1521" serverName="yourOracle.com"> </dataSource>对于下列属性,确保使用正确的值:
- 对于 password,请使用您在 Oracle 中创建 OAUTHDBSCHEMA 用户时指定的密码。
- 对于 databaseName,请使用数据库的 Oracle SID。 样本使用 Oracle - ORCL指定的缺省值。 您的值可能不同。
- 对于 portNumber,请使用运行 Oracle 实例的端口号。 缺省端口号为 1521。
- 对于 serverName,请输入 Oracle 服务器的主机名。
- 在 appConfig.xml 文件的 oauthProvider 部分中,更新 databaseStore 属性,以使其指定 Oracle 数据源而不是缺省 Apache Derby 数据源。 databaseStore 属性应指定 Oracle 数据源的名称,在此示例中,该名称为 OAUTH2ORA:
<oauthProvider id="JazzOP" httpsRequired="true" autoAuthorize="true" customLoginURL="/jazzop/form/login" accessTokenLifetime="7201" authorizationGrantLifetime="604801"> <autoAuthorizeClient>client01</autoAuthorizeClient> <databaseStore dataSourceRef="OAUTH2ORA" /> </oauthProvider> - 保存并关闭 appConfig.xml 文件。
- 将 Oracle ojdbc8.jar JDBC 驱动程序从 Oracle 服务器复制到以下目录: opt/IBM/JazzAuthServer/wlp/usr/shared/config/lib/global。