本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 Oracle Rest Data Services (ORDS)
下列主題列出 ORDS 21 和 22 的組態選項:
安裝並設定 ORDS 21 及更低版本
您現在可以安裝和設定 Oracle Rest Data Services (ORDS),以便與 Oracle APEX 搭配使用。對於 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資料服務
下載檔案 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。如需更多詳細資訊,請參閱 將 SELECT 或 EXECUTE 權限授予 SYS 物件。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 簡介
。 -
輸入要存放組態資料的位置:
輸入
/home/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_PUBLIC_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 Gateway 資料庫使用者名稱 [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 Developer Web、REST Enabled SQL 和 Database API。 -
若要以獨立模式啟動,請輸入 1,或輸入 2 以結束 [1]:
輸入
1。 -
輸入 APEX 靜態資源位置:
如果您將 APEX 安裝檔案解壓縮至
/home/apexuser,請輸入/home/apexuser/apex/images。否則,請輸入,其中unzip_path/apex/imagesunzip_path是您將檔案解壓縮的目錄所在位置。 -
若使用 HTTP,請輸入 1;或若使用 HTTPS [1],則請輸入 2:
如果您輸入
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 (Application Express 內部管理)。當提示您提供登入資料時,請輸入下列資訊:
-
使用者名稱 –
admin -
密碼 – 使用
apxchpwd.sql指令碼所設定的密碼
選擇 Login (登入),然後設定
admin使用者的新密碼。 -
您的接聽程式現在可供使用。
安裝並設定 ORDS 22 及更新版本
您現在可以安裝和設定 Oracle Rest Data Services (ORDS),以便與 Oracle APEX 搭配使用。對於本節中的範例,我們假設您的個別主機名稱是 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。如需詳細資訊,請參閱將 SELECT 或 EXECUTE 權限授予 SYS 物件。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.3 或更新版本,並在安裝 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密碼。 -
使用
ords指令碼搭配serve命令,以獨立模式執行 ORDS。對於生產部署,請考慮使用支援的 Java EE 應用程式伺服器,例如 Apache Tomcat 或 Oracle WebLogic Server。如需詳細資訊,請參閱 Oracle Database 文件中的部署和監控 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.若要修正此錯誤,請執行
ords指令碼搭配config命令,以變更 ORDS 使用的請求驗證函數。根據預設,ORDS 會使用ords_util.authorize_plsql_gateway程序,該程序僅在 CDB 執行個體上受支援。對於非 CDB 執行個體,您可以將此程序變更為wwv_flow_epg_include_modules.authorize套件。如需為您的使用案例設定適當請求驗證函數的最佳實務,請參閱 Oracle Database 文件和 Oracle Support。 -
在瀏覽器中返回 Oracle APEX 管理視窗,然後選擇管理。接著選擇 Application Express Internal Administration (Application Express 內部管理)。當提示您提供登入資料時,請輸入下列資訊:
-
使用者名稱 –
admin -
密碼 – 使用
apxchpwd.sql指令碼所設定的密碼
選擇 Login (登入),然後設定
admin使用者的新密碼。 -
您的接聽程式現在可供使用。