配置 Oracle Rest Data Services(ORDS)
以下主题列出了 ORDS 21 和 22 的配置选项:
安装并配置 ORDS 21 及更低版本
现在一切就绪,可以安装和配置用于 Oracle APEX 的 Oracle Rest Data Services (ORDS) 了。对于 Oracle APEX 版本 5.0 及更高版本,请使用 ORDS 版本 19.1 到 21。要了解如何安装 ORDS 22 及更高版本,请参阅安装和配置 ORDS 22 及更高版本。
将侦听器安装在单独的主机上,例如 Amazon EC2 实例、公司的本地服务器或您的台式计算机。对于本节中的示例,我们假定您的主机的名称为 myapexhost.example.com,并且您的主机运行的是 Linux。
安装并配置 ORDS 21 及更低版本以与 Oracle APEX 结合使用
-
转至 Oracle REST Data Services
,查看自述文件。确保安装了所需的 Java 版本。 -
为 ORDS 安装创建一个新目录。
mkdir /home/apexuser/ORDS cd /home/apexuser/ORDS -
从 Oracle REST data services
下载文件 ords.。version.number.zip -
将该文件解压缩到
/home/apexuser/ORDS目录中。 -
如果要将 ORDS 安装到多租户数据库中,请将如下命令行添加到文件
/home/apexuser/ORDS/params/ords_params.properties:pdb.disable.lockdown=false -
为主用户授予所需的权限以安装 ORDS。
在安装 Oracle APEX 的选项后,为主用户提供所需的权限以安装 ORDS 架构。您可以连接到数据库并运行以下命令以完成该操作。将
替换为主用户的大写名称。MASTER_USER重要
输入用户名时,除非您使用区分大小写的标识符创建了用户,否则请使用大写字母。例如,如果您运行
CREATE USER myuser或CREATE USER MYUSER,则数据字典将存储MYUSER。但是,如果您在CREATE USER "MyUser"中使用双引号,则数据字典将存储MyUser。有关更多信息,请参阅“向 SYS 对象授予 SELECT 或 EXECUTE 权限”。exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_OBJECTS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_ROLE_PRIVS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_TAB_COLUMNS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_CONS_COLUMNS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_CONSTRAINTS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_OBJECTS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_PROCEDURES', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_TAB_COLUMNS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_TABLES', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_VIEWS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('WPIUTL', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SESSION', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_UTILITY', 'MASTER_USER', 'EXECUTE', true);注意
这些命令适用于 ORDS 版本 19.1 和更高版本。
-
使用下载的 ords.war 文件安装 ORDS 架构。
java -jar ords.war install advanced程序会提示您输入以下信息。括号中为默认值。有关更多信息,请参阅 Oracle 文档中的 Oracle REST Data Services 简介
。 -
输入用于存储配置数据的位置:
输入
/apexuser/ORDS。这是 ORDS 配置文件的位置。 -
指定要使用的数据库连接类型。输入 [1] 基本 [2] TNS [3] 自定义 URL [1] 的编号:
选择所需的连接类型。
-
输入数据库服务器 [localhost] 的名称:
DB_instance_endpoint选择默认值或输入正确的值。
-
输入数据库侦听器端口 [1521]:
DB_instance_port选择默认值或输入正确的值。
-
输入 1 以指定数据库服务名称,或输入 2 以指定数据库 SID [1]:
选择
2以指定数据库 SID。 -
数据库 SID [xe]
选择默认值或输入正确的值。
-
如果要验证/安装 Oracle REST Data Services 架构,请输入 1,或输入 2 以跳过此步骤 [1]:
选择
1。此步骤将创建名为 ORDS_PUB_USER 的 Oracle REST Data Services 代理用户。 -
输入 ORDS_PUBLIC_USER 的数据库密码:
输入密码,然后确认。
-
要求使用管理员权限登录以验证 Oracle REST Data Services 架构。
输入管理员用户名:
master_user输入
master_user的数据库密码:master_user_password确认该密码:
master_user_password注意
作为安全最佳实践,请指定除此处所示提示以外的密码。
-
输入 ORDS_METADATA [SYSAUX] 的默认表空间。
输入 ORDS_METADATA [TEMP] 的临时表空间。
输入 ORDS_PUBLIC_USER [USERS] 的默认表空间。
输入 ORDS_PUBLIC_USER [TEMP] 的临时表空间。
-
如果要使用 PL/SQL 网关,请输入 1,或者输入 2 以跳过该步骤。如果使用 Oracle Application Express 或从 mod_plsql 迁移,您必须输入 1 [1]。
选择默认值。
-
输入 PL/SQL 网关数据库用户名 [APEX_PUBLIC_USER]
选择默认值。
-
输入 APEX_PUBLIC_USER 的数据库密码:
输入密码,然后确认。
-
输入 1 以指定 Application Express RESTful Services 数据库用户(APEX_LISTENER、APEX_REST_PUBLIC_USER)的密码,或输入 2 以跳过此步骤 [1]:
为 APEX 4.1.1.V1 选择
2;为所有其他 APEX 版本选择1。 -
[对于 APEX 4.1.1.v1 不需要] APEX_LISTENER 的数据库密码
输入密码(如果需要),然后确认。
-
[对于 APEX 4.1.1.v1 不需要] APEX_REST_PUBLIC_USER 的数据库密码
输入密码(如果需要),然后确认。
-
输入一个数字以选择要启用的特征:
输入
1以启用所有特征:SQL 开发人员 Web、启用 REST 的 SQL 和数据库 API。 -
如果您希望在独立模式下启动,请输入 1;或输入 2 退出 [1]:
输入
1。 -
输入 APEX 静态资源位置:
如果已将 APEX 安装文件解压缩到
/home/apexuser中,请输入/home/apexuser/apex/images。否则,请输入,其中unzip_path/apex/imagesunzip_path是解压缩文件的目录。 -
如果使用 HTTP,则输入 1;如果使用 HTTPS,则输入 2 [1]:
如果您输入
1,请指定 HTTP 端口。如果您输入2,请指定 HTTPS 端口和 SSL 主机名。HTTPS 选项提示您指定提供证书的方式:-
输入
1以使用自签名证书。 -
输入
2以提供您自己的证书。如果输入2,请指定 SSL 证书的路径和 SSL 证书私有密钥的路径。
-
-
-
为 APEX
admin用户设置密码。为此,请使用 SQL*Plus 以主用户身份连接到数据库实例,然后运行以下命令。EXEC rdsadmin.rdsadmin_util.grant_apex_admin_role; grant APEX_ADMINISTRATOR_ROLE tomaster; @/home/apexuser/apex/apxchpwd.sql使用主用户名替换
。在masterapxchpwd.sql脚本提示您时,输入新的admin密码。 -
启动 ORDS 侦听器。运行以下代码。
java -jar ords.war首次启动 ORDS 时,系统会提示您提供 APEX 静态资源的位置。此映像文件夹位于 APEX 安装目录下的
/apex/images目录中。 -
返回浏览器中的 Oracle APEX 管理窗口,然后选择管理。接下来选择 Application Express Internal Administration。在提示您输入凭证时,请输入以下信息:
-
用户名 –
admin -
密码 – 使用
apxchpwd.sql脚本设置的密码
选择 Login,然后设置
admin用户的新密码。 -
您的侦听器现在已可以使用。
安装和配置 ORDS 22 及更高版本
现在一切就绪,可以安装和配置用于 Oracle APEX 的 Oracle Rest Data Services (ORDS) 了。对于本节中的示例,我们假定单独主机的名称为 myapexhost.example.com,并且主机运行的是 Linux。ORDS 22 的说明与先前版本的说明不同。
安装并配置 ORDS 22 及更高版本以与 Oracle APEX 结合使用
-
转至 Oracle REST Data Services
,查看您计划下载的 ORDS 版本的自述文件。确保安装了所需的 Java 版本。 -
为 ORDS 安装创建一个新目录。
mkdir /home/apexuser/ORDS cd /home/apexuser/ORDS -
从 Oracle REST Data Services
下载文件 ords.或version.number.zipords-latest.zip。 -
将该文件解压缩到
/home/apexuser/ORDS目录中。 -
为主用户授予所需的权限以安装 ORDS。
在安装
APEX选项后,为主用户提供所需的权限以安装 ORDS 架构。您可以登录到数据库并运行以下命令来完成该操作。将替换为主用户的大写名称。MASTER_USER重要
输入用户名时,除非您使用区分大小写的标识符创建了用户,否则请使用大写字母。例如,如果您运行
CREATE USER myuser或CREATE USER MYUSER,则数据字典将存储MYUSER。但是,如果您在CREATE USER "MyUser"中使用双引号,则数据字典将存储MyUser。有关更多信息,请参阅 向 SYS 对象授予 SELECT 或 EXECUTE 权限。exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_OBJECTS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_ROLE_PRIVS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_TAB_COLUMNS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_CONS_COLUMNS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_CONSTRAINTS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_OBJECTS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_PROCEDURES', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_TAB_COLUMNS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_TABLES', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_VIEWS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('WPIUTL', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SESSION', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_UTILITY', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOB', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_ASSERT', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_OUTPUT', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SCHEDULER', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('HTP', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('OWA', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('WPG_DOCLOAD', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_CRYPTO', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_METADATA', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SQL', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('UTL_SMTP', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_NETWORK_ACL_ADMIN', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('SESSION_PRIVS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_USERS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_NETWORK_ACL_PRIVILEGES', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_NETWORK_ACLS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_REGISTRY', 'MASTER_USER', 'SELECT', true);注意
上述命令适用于 ORDS 22 及更高版本。
-
使用下载的
ords脚本安装 ORDS 架构。指定要包含配置文件和日志文件的目录。Oracle Corporation 建议不要将这些目录放在包含 ORDS 产品软件的目录中。mkdir -p /home/apexuser/ords_config /home/apexuser/ords_logs /home/apexuser/ORDS/bin/ords \ --config /home/apexuser/ords_config \ install --interactive --log-folder /home/apexuser/ords_logs对于运行容器数据库(CDB)架构的数据库实例,请使用 ORDS 23.2 及更高版本,并在安装 ORDS 时传递
--pdb-skip-disable-lockdown参数。/home/apexuser/ORDS/bin/ords \ --config /home/apexuser/ords_config \ install --interactive --log-folder /home/apexuser/ords_logs --pdb-skip-disable-lockdown程序会提示您输入以下信息。括号中为默认值。有关更多信息,请参阅 Oracle 文档中的 Oracle REST Data Services 简介
。 -
Choose the type of installation:选择
2可在数据库中安装 ORDS 架构,并在本地 ORDS 配置文件中创建数据库连接池。 -
Specify the database connection type to use. Enter number for [1] Basic [2] TNS [3] Custom URL:选择所需的连接类型。此示例假设您选择
1。 -
Enter the name of the database server [localhost]:DB_instance_endpoint选择默认值 或输入正确的值。
-
Enter the database listener port [1521]:DB_instance_port选择默认值
1521或输入正确的值。 -
Enter the database service name [orcl]:输入 RDS for Oracle 数据库实例所使用的数据库名称。
-
Provide database user name with administrator privileges输入 RDS for Oracle 数据库实例的主用户名。
-
Enter the database password for [username]:输入 RDS for Oracle 数据库实例的主用户密码。
-
Enter the default tablespace for ORDS_METADATA and ORDS_PUBLIC_USER [SYSAUX]: -
Enter the temporary tablespace for ORDS_METADATA [TEMP]. Enter the default tablespace for ORDS_PUBLIC_USER [USERS]. Enter the temporary tablespace for ORDS_PUBLIC_USER [TEMP]. -
Enter a number to select additional feature(s) to enable [1]: -
Enter a number to configure and start ORDS in standalone mode [1]:选择
2可在独立模式下立即跳过启动 ORDS。 -
Enter a number to select the protocol [1] HTTP -
Enter the HTTP port [8080]: -
Enter the APEX static resources location:输入 Oracle APEX 安装文件的路径(
/home/apexuser/apex/images)。
-
-
为 Oracle APEX
admin用户设置密码。为此,请使用 SQL*Plus 以主用户身份连接到数据库实例,然后运行以下命令。EXEC rdsadmin.rdsadmin_util.grant_apex_admin_role; grant APEX_ADMINISTRATOR_ROLE tomaster; @/home/apexuser/apex/apxchpwd.sql使用主用户名替换
。在masterapxchpwd.sql脚本提示您时,输入新的admin密码。 -
使用带有
serve命令的ords脚本在独立模式下运行 ORDS。对于生产部署,可以考虑使用支持的 Java EE 应用程序服务器,例如 Apache Tomcat 或 Oracle WebLogic 服务器。有关更多信息,请参阅 Oracle 数据库文档中的 Deploying and Monitoring Oracle REST Data Services。 /home/apexuser/ORDS/bin/ords \ --config /home/apexuser/ords_config serve \ --port 8193 \ --apex-images /home/apexuser/apex/images如果 ORDS 正在运行但无法访问 Oracle APEX 安装,您可能会看到以下错误,尤其是在非 CDB 实例上。
The procedure named apex_admin could not be accessed, it may not be declared, or the user executing this request may not have been granted execute privilege on the procedure, or a function specified by security.requestValidationFunction configuration property has prevented access.要修复此错误,请通过运行带有
config命令的ords脚本来更改 ORDS 使用的请求验证函数。默认情况下,ORDS 使用ords_util.authorize_plsql_gateway程序包,只有 CDB 实例支持该程序包。对于非 CDB 实例,您可以将此程序包更改为wwv_flow_epg_include_modules.authorize软件包。有关为您的用例配置正确的请求验证函数的最佳实践,请参阅 Oracle 数据库文档和 Oracle Support。 -
返回浏览器中的 Oracle APEX 管理窗口,然后选择管理。接下来选择 Application Express Internal Administration。在提示您输入凭证时,请输入以下信息:
-
用户名 –
admin -
密码 – 使用
apxchpwd.sql脚本设置的密码
选择 Login,然后设置
admin用户的新密码。 -
您的侦听器现在已可以使用。