本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 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 資料服務
,並檢查讀我檔案。請確定您已安裝必要的 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
。如需更多詳細資訊,請參閱 授予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 簡介
。 -
輸入要存放組態資料的位置:
輸入
/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 to
master
; @/home/apexuser/apex/apxchpwd.sql將
改為您的主要使用者名稱。當master
apxchpwd.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 資料服務
,並檢查 Readme 是否有您計劃下載的 ORDS 版本。請確定您已安裝必要的 Java 版本。 -
為您的 ORDS 安裝建立新的目錄。
mkdir /home/apexuser/ORDS cd /home/apexuser/ORDS
-
從 Oracle REST
ords-latest.zip
資料服務下載 檔案ords.
或 。 http://www.oracle.com/technetwork/developer-tools/rest-data-services/downloads/index.htmlversion.number
.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 to
master
; @/home/apexuser/apex/apxchpwd.sql將
改為您的主要使用者名稱。當master
apxchpwd.sql
指令碼提示您時,請輸入新的admin
密碼。 -
使用
ords
指令碼搭配serve
命令,以獨立模式執行 ORDS。對於生產部署,請考慮使用支援的 Java EE 應用程式伺服器,例如 Apache Tomcat 或 Oracle WebLogic Server。如需詳細資訊,請參閱 Oracle 資料庫文件中的部署和監控 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 (Application Express 內部管理)。當提示您提供登入資料時,請輸入下列資訊:
-
使用者名稱 –
admin
-
密碼 – 使用
apxchpwd.sql
指令碼所設定的密碼
選擇 Login (登入),然後設定
admin
使用者的新密碼。 -
您的接聽程式現在可供使用。