

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Oracle Application Express (APEX)
<a name="Appendix.Oracle.Options.APEX"></a>

Amazon RDS 會使用 `APEX` 和 `APEX-DEV` 選項，藉此支援 Oracle Application Express (APEX)。您可以將 Oracle APEX 部署成適用於 Web 應用程式的執行階段環境或完整開發環境。Oracle APEX 可讓您完全在 Web 瀏覽器內建置應用程式。如需詳細資訊，請參閱 Oracle 文件中的 [Oracle Application Express](https://apex.oracle.com/)。

**Topics**
+ [

## Oracle APEX 元件
](#Appendix.Oracle.Options.APEX.components)
+ [

# 要求與限制
](Appendix.Oracle.Options.APEX.Requirements.md)
+ [

# 設定 Oracle APEX 和 Oracle Rest Data Services (ORDS)
](Appendix.Oracle.Options.APEX.settingUp.md)
+ [

# 設定 Oracle Rest Data Services (ORDS)
](Appendix.Oracle.Options.APEX.ORDSConf.md)
+ [

# 升級和移除 Oracle APEX
](Appendix.Oracle.Options.APEX.UpgradeandRemove.md)

## Oracle APEX 元件
<a name="Appendix.Oracle.Options.APEX.components"></a>

Oracle APEX 包含下列主要元件：
+ *儲存庫*，存放 Oracle APEX 應用程式和元件的中繼資料。儲存庫包含安裝於 Amazon RDS 資料庫執行個體中的資料表、索引及其他物件。
+ *接聽程式*，管理與 Oracle APEX 用戶端之間的 HTTP 通訊。接聽程式位於個別主機上，例如 Amazon EC2 執行個體、公司的內部部署伺服器或您的桌上型電腦。接聽程式接受 web 瀏覽器傳入的連線、將連線轉送至 Amazon RDS 資料庫執行個體來處理，然後將結果從儲存庫傳回給瀏覽器。

  RDS for Oracle 支援下列接聽程式類型：
  + 若為 Oracle APEX 5.0 版和更新版本，請使用 Oracle REST Data Services (ORDS) 版本 19.1 和更新版本。我們建議您使用最新支援的 Oracle APEX 和 ORDS 版本。本文件描述舊版僅供回溯相容性之用。
  + 若為 Oracle APEX 4.1.1 版，您可使用 Oracle APEX Listener 1.1.4 版。
  + 您可以使用 Oracle HTTP Server 和 `mod_plsql` 接聽程式。
**注意**  
Amazon RDS 不支援有內嵌 PL/SQL 閘道的 Oracle XML DB HTTP 伺服器做為 Oracle APEX 的接聽程式。一般而言，對於網際網路上執行的應用程式，Oracle 不建議使用內嵌 PL/SQL 閘道。

  如需有關這些接聽程式類型的詳細資訊，請參閱 Oracle 文件中的[關於選擇 Web 接聽程式](https://docs.oracle.com/database/apex-5.1/HTMIG/choosing-web-listener.htm#HTMIG29321)。

當您將 `APEX` 和 `APEX-DEV` 選項新增至 RDS for Oracle 資料庫執行個體時，Amazon RDS 僅會安裝 Oracle APEX 儲存庫。在個別主機上安裝您的接聽程式。

# 要求與限制
<a name="Appendix.Oracle.Options.APEX.Requirements"></a>

下列主題列出 Oracle APEX 和 ORDS 的要求和限制。

## Oracle APEX 版本要求
<a name="Appendix.Oracle.Options.APEX.versions"></a>

`APEX` 選項將為您的資料庫執行個體使用資料庫執行個體類別上的儲存空間。下列為 Oracle APEX 支援的版本與約略儲存空間需求：


****  

| Oracle APEX 版本 | 儲存需求 | 支援的 Oracle Database 版本 | 備註 | 
| --- | --- | --- | --- | 
|  Oracle APEX 24.2.v1 版  |  114 MiB  |  全部  |  此版本包含修補程式 37885097：PSE BUNDLE FOR APEX 24.2 (PSES ON TOP OF 24.2.0), PATCH\$1VERSION 4。  | 
|  Oracle APEX 24.1.v1 版  |  112 MiB  |  全部  |  此版本包含修補程式 36695709：PSE BUNDLE FOR APEX 24.1 (PSES ON TOP OF 24.1.0), PATCH\$1VERSION 3。如果您需要在 EC2 執行個體上安裝完全相同的 APEX 映像版本，請下載修補程式 37544819：24.1.3 PSE BUNDLE FOR APEX 24.1 (PSES ON TOP OF 24.1.0)。  | 
|  Oracle APEX 23.2.v1 版  |  110 MiB  |  全部  |  此版本包含修補程式 35895964：PSE BUNDLE FOR APEX 23.2 (PSES ON TOP OF 23.2.0), PATCH\$1VERSION 6。如果您需要在 EC2 執行個體上安裝完全相同的 APEX 映像版本，請下載修補程式 37593125：23.2.6 PSE BUNDLE FOR APEX 23.2 (PSES ON TOP OF 23.2.0)。  | 
|  Oracle APEX 23.1.v1 版  |  106 MiB  |  全部  |  此版本包含修補程式 35283657：PSE BUNDLE FOR APEX 23.1 (PSES ON TOP OF 23.1.0), PATCH\$1VERSION 2。  | 
|  Oracle APEX 22.2.v1 版  |  106 MiB  |  全部  |  此版本包含修補程式 34628174：PSE BUNDLE FOR APEX 22.2 (PSES ON TOP OF 22.2.0), PATCH\$1VERSION 4。  | 
|  Oracle APEX 22.1.v1 版  |  124 MiB  |  全部  |  此版本包含修補程式 34020981：PSE BUNDLE FOR APEX 22.1 (PSES ON TOP OF 22.1.0), PATCH\$1VERSION 6。  | 
|  Oracle APEX 21.2.v1 版  |  125 MiB  |  全部  |  此版本包含修補程式 33420059：PSE BUNDLE FOR APEX 21.2 (PSES ON TOP OF 21.2.0), PATCH\$1VERSION 8。  | 
|  Oracle APEX 21.1.v1 版  |  125 MiB  |  全部  |  此版本包含修補程式 32598392：PSE BUNDLE FOR APEX 21.1，PATCH\$1VERSION 3。  | 
|  Oracle APEX 版本 20.2.v1  |  148 MiB  |  除了 Oracle Database 21c 之外的所有版本  |  此版本包含修補程式 32006852：PSE BUNDLE FOR APEX 20.2，PATCH\$1VERSION 2020.11.12。您可以執行下列查詢來查看修補程編號和日期： <pre>SELECT PATCH_VERSION, PATCH_NUMBER <br />FROM   APEX_PATCHES;</pre>  | 
|  Oracle APEX 20.1.v1 版  |  173 MiB  |  除了 Oracle Database 21c 之外的所有版本  |  此版本包含修補程式 30990551：PSE BUNDLE FOR APEX 20.1，PATCH\$1VERSION 2020.07.15。  | 
|  Oracle APEX 19.2.v1 版  |  149 MiB  |  除了 Oracle Database 21c 之外的所有版本  |  | 
|  Oracle APEX 19.1.v1 版  |  148 MiB  |  除了 Oracle Database 21c 之外的所有版本  |  | 

如需可下載的 Oracle APEX .zip 檔案，請參閱 Oracle 網站上的 [Oracle APEX 發行前封存](https://www.oracle.com/tools/downloads/apex-all-archives-downloads.html)。

## Oracle APEX 和 ORDS 先決條件
<a name="Appendix.Oracle.Options.APEX.PreReqs"></a>

請注意下列使用 Oracle APEX 和 ORDS 的先決條件：
+ 您的系統必須使用 Java 執行階段環境 (JRE)。
+ 您的 Oracle 用戶端安裝必須包括下列項目：
  + 適用於系統管理任務的 SQL\$1Plus 或 SQL Developer
  + 用於設定 RDS for Oracle 資料庫執行個體連線的 Oracle Net Services

## Oracle APEX 限制
<a name="Appendix.Oracle.Options.APEX.limitations"></a>

您無法修改由 Amazon RDS 管理的 `APEX_version` 使用者帳戶。因此，您無法套用資料庫設定檔或對此使用者強制執行密碼規則。的設定檔和密碼設定由 Oracle `APEX_version`預先定義 AWS ，旨在符合 Amazon RDS 的安全要求。

# 設定 Oracle APEX 和 Oracle Rest Data Services (ORDS)
<a name="Appendix.Oracle.Options.APEX.settingUp"></a>

下列主題列出設定 Oracle APEX 和 ORDS 所需的步驟

**Topics**
+ [

## 將 APEX 和 APEX-DEV 選項新增至您的資料庫執行個體
](#Appendix.Oracle.Options.APEX.Add)
+ [

## 解除鎖定資料庫執行個體上的公有使用者帳戶
](#Appendix.Oracle.Options.APEX.PublicUser)
+ [

## 設定適用於 Oracle APEX 的 RESTful 服務
](#Appendix.Oracle.Options.APEX.ConfigureRESTful)
+ [

## 準備在個別主機上安裝 ORDS
](#Appendix.Oracle.Options.APEX.ORDS.ords-setup)
+ [

## 設定 Oracle APEX Listener
](#Appendix.Oracle.Options.APEX.Listener)

## 將 APEX 和 APEX-DEV 選項新增至您的資料庫執行個體
<a name="Appendix.Oracle.Options.APEX.Add"></a>

若要將 `APEX` 和 `APEX-DEV` 選項新增至 RDS for Oracle 資料庫執行個體，請執行下列操作：

1. 建立新的選項群組，或是複製或修改現有選項群組。

1. 將 `APEX` 和 `APEX-DEV` 選項新增至選項群組。

1. 將選項群組與您的資料庫執行個體建立關聯。

當您新增 `APEX` 和 `APEX-DEV` 選項時，當資料庫執行個體自動重新啟動時會發生短暫的中斷。

**注意**  
`APEX_MAIL` 在已安裝 `APEX` 選項時可用。`APEX_MAIL` 套件的執行權限會授予 `PUBLIC`，因此您不需要有 APEX 管理帳戶就能使用它。

**將 APEX 和 APEX-DEV 選項新增至資料庫執行個體**

1. 判斷要使用的選項群組。您可以建立新的選項群組或使用現有的選項群組。如果您要使用現有的選項群組，請跳到下一個步驟。否則請使用下列設定來建立自訂資料庫選項群組：

   1. 針對 **Engine (引擎)**，選擇您想要使用的 Oracle 版本。所有版本都支援 `APEX` 和 `APEX-DEV` 選項。

   1. 針對 **Major engine version (主要引擎版本)**，請選擇您資料庫執行個體的版本。

   如需更多詳細資訊，請參閱 [建立選項群組](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)。

1. 將選項新增至選項群組。如果您只想部署 Oracle APEX 執行階段環境，則只需要新增 `APEX` 選項。若要部署完整開發環境，請同時新增 `APEX` 和 `APEX-DEV` 選項。

   對於**版本**，選擇您想要使用的 Oracle APEX 版本。
**重要**  
如果您將 `APEX` 或 `APEX-DEV` 選項新增至已連接到一個或多個資料庫執行個體的現有選項群組，則會發生短暫的停機。在此停機期間，所有資料庫執行個體都會重新啟動。

   如需新增選項的詳細資訊，請參閱[將選項新增至選項群組](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption)。

1. 將選項群組套用至新的或現有的資料庫執行個體：
   + 針對新的資料庫執行個體，您會在啟動執行個體時套用選項群組。如需更多詳細資訊，請參閱 [建立 Amazon RDS 資料庫執行個體](USER_CreateDBInstance.md)。
   + 針對現有的資料庫執行個體，您可以透過修改執行個體並附加新的選項群組來套用選項群組。當您將 `APEX` 或 `APEX-DEV` 選項新增至現有的資料庫執行個體時，在資料庫執行個體自動重新啟動時會發生短暫的中斷。如需詳細資訊，請參閱[修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md)。

## 解除鎖定資料庫執行個體上的公有使用者帳戶
<a name="Appendix.Oracle.Options.APEX.PublicUser"></a>

在您的資料庫執行個體上安裝 `APEX` 或 `APEX-DEV` 選項之後，請務必執行下列操作：

1. 變更 `APEX_PUBLIC_USER` 帳戶的密碼。

1. 解除鎖定帳戶。

您可以使用 Oracle SQL\$1Plus 命令列公用程式來這麼做。以主要使用者身分連線至資料庫執行個體，然後發出以下命令。將 `new_password` 改為您選擇的密碼。

```
1. ALTER USER APEX_PUBLIC_USER IDENTIFIED BY new_password;
2. ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK;
```

## 設定適用於 Oracle APEX 的 RESTful 服務
<a name="Appendix.Oracle.Options.APEX.ConfigureRESTful"></a>

若要在 Oracle APEX 中設定 RESTful 服務 (Oracle APEX 4.1.1.V1 不需要)，請使用 SQL\$1Plus 以主要使用者身分連線至資料庫執行個體。完成此作業後，請執行 `rdsadmin.rdsadmin_run_apex_rest_config` 預存程序。執行預存程序時，您需要提供下列使用者的密碼：
+ `APEX_LISTENER`
+ `APEX_REST_PUBLIC_USER`

此預存程序會執行 `apex_rest_config.sql` 指令碼，而為這些使用者建立新的資料庫帳戶。

**注意**  
若為 Oracle APEX 版本 4.1.1.v1，則不需要設定。僅針對此 Oracle APEX 版本，您不需要執行此預存程序。

下列命令會執行此預存程序。

```
1. EXEC rdsadmin.rdsadmin_run_apex_rest_config('apex_listener_password', 'apex_rest_public_user_password');
```

## 準備在個別主機上安裝 ORDS
<a name="Appendix.Oracle.Options.APEX.ORDS.ords-setup"></a>

將 ORDS 安裝在另一部主機上，例如 Amazon EC2 執行個體、公司的內部部署伺服器或您的桌上型電腦。本節中的範例假設您的主機執行 Linux 且名為 `myapexhost.example.com`。

在安裝 ORDS 之前，您必須先建立無特殊權限的作業系統使用者，然後下載並解壓縮 Oracle APEX 安裝檔案。

**準備進行 ORDS 安裝**

1. 以 `myapexhost.example.com` 身分登入 `root`。

1. 建立無特殊權限的作業系統使用者來負責接聽程式安裝。以下命令建立一個名為 *apexuser* 的新使用者。

   ```
   useradd -d /home/apexuser apexuser
   ```

   以下命令指派密碼給新使用者。

   ```
   passwd apexuser;
   ```

1. 以 `myapexhost.example.com` 身分登入 `apexuser`，然後從 Oracle 下載 Oracle APEX 安裝檔案至您的 `/home/apexuser` 目錄：
   + [http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html](http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html) 
   + [Oracle Application Express 發行前封存](http://www.oracle.com/technetwork/developer-tools/apex/downloads/all-archives-099381.html) 

1. 將檔案解壓縮在 `/home/apexuser` 目錄中。

   ```
   unzip apex_version.zip
   ```

   解壓縮檔案之後，`apex` 目錄中會有一個 `/home/apexuser` 目錄。

1. 在您仍以 `myapexhost.example.com` 身分登入 `apexuser` 時，從 Oracle 下載 Oracle REST Data Services 檔案至您的 `/home/apexuser` 目錄：[http://www.oracle.com/technetwork/developer-tools/apex-listener/downloads/index.html](http://www.oracle.com/technetwork/developer-tools/apex-listener/downloads/index.html)。

## 設定 Oracle APEX Listener
<a name="Appendix.Oracle.Options.APEX.Listener"></a>

**注意**  
Oracle APEX Listener 已淘汰。

Amazon RDS for Oracle 繼續支援 Oracle APEX 4.1.1 版和 Oracle APEX Listener 1.1.4 版。我們建議您使用最新支援的 Oracle APEX 和 ORDS 版本。

將 Oracle APEX Listener 安裝在另一部主機上，例如 Amazon EC2 執行個體、公司的現場部署伺服器或您的桌上型電腦。我們假設主機名稱為 `myapexhost.example.com`，且主機執行 Linux。

### 準備安裝 Oracle APEX Listener
<a name="Appendix.Oracle.Options.APEX.Listener.preparing"></a>

在安裝 Oracle APEX Listener 之前，您必須先建立無特殊權限的作業系統使用者，然後下載並解壓縮 Oracle APEX 安裝檔案。

**準備安裝 Oracle APEX Listener**

1. 以 `myapexhost.example.com` 身分登入 `root`。

1. 建立無特殊權限的作業系統使用者來負責接聽程式安裝。以下命令建立一個名為 *apexuser* 的新使用者。

   ```
   useradd -d /home/apexuser apexuser
   ```

   以下命令指派密碼給新使用者。

   ```
   passwd apexuser;
   ```

1. 以 `myapexhost.example.com` 身分登入 `apexuser`，然後從 Oracle 下載 Oracle APEX 安裝檔案至您的 `/home/apexuser` 目錄：
   + [http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html](http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html) 
   + [Oracle Application Express 發行前封存](http://www.oracle.com/technetwork/developer-tools/apex/downloads/all-archives-099381.html) 

1. 將檔案解壓縮在 `/home/apexuser` 目錄中。

   ```
   unzip apex_<version>.zip                
   ```

   解壓縮檔案之後，`apex` 目錄中會有一個 `/home/apexuser` 目錄。

1. 在您仍以 `myapexhost.example.com` 身分登入 `apexuser` 時，從 Oracle 下載 Oracle APEX Listener 檔案至您的 `/home/apexuser` 目錄。

#### 安裝與設定 Oracle APEX Listener
<a name="Appendix.Oracle.Options.APEX.Listener.installing"></a>

在可以使用 Oracle APEX 之前，您需先下載 `apex.war` 檔案、使用 Java 安裝 Oracle APEX Listener，然後啟動接聽程式。

**安裝與設定 Oracle APEX Listener**

1. 根據 Oracle APEX Listener 建立新目錄，並開啟接聽程式檔案。

   執行下列程式碼：

   ```
   mkdir /home/apexuser/apexlistener
   cd /home/apexuser/apexlistener 
   unzip ../apex_listener.version.zip
   ```

1. 執行下列程式碼。

   ```
   java -Dapex.home=./apex -Dapex.images=/home/apexuser/apex/images -Dapex.erase -jar ./apex.war
   ```

1. 輸入資訊讓程式提示下列：
   + APEX Listener Administrator 使用者名稱。預設值為 *adminlistener*。
   + APEX Listener Administrator 的密碼。
   + APEX Listener Manager 使用者名稱。預設值為 *managerlistener*。
   + APEX Listener Administrator 的密碼。

   程式會印出您完成組態所需的 URL，如下所示。

   ```
   INFO: Please complete configuration at: http://localhost:8080/apex/listenerConfigure
   Database is not yet configured
   ```

1. 讓 Oracle APEX Listener 保持執行，使得您可以使用 Oracle Application Express。當您完成此設定程序時，就可以換成在背景中執行接聽程式。

1. 在 web 瀏覽器中，移至 Oracle APEX Listener 程式所提供的 URL。Oracle Application Express Listener 管理視窗隨即出現。輸入下列資訊：
   + **使用者名稱** – `APEX_PUBLIC_USER`
   + **密碼** – *APEX\$1PUBLIC\$1USER* 的密碼。這是您稍早設定 Oracle APEX 儲存庫時所指定的密碼。如需詳細資訊，請參閱[解除鎖定資料庫執行個體上的公有使用者帳戶](#Appendix.Oracle.Options.APEX.PublicUser)。
   + **連線類型** – 基本 
   + **主機名稱** – Amazon RDS 資料庫執行個體的端點，例如 `mydb.f9rbfa893tft.us-east-1.rds.amazonaws.com`。
   + **連接埠** – 1521
   + **SID** – Amazon RDS 資料庫執行個體上的資料庫名稱，例如 `mydb`。

1. 選擇 **Apply** (套用)。Oracle APEX 管理視窗隨即出現。

1. 設定 Oracle APEX `admin` 使用者的密碼。若要這麼做，請使用 SQL\$1Plus 以主要使用者身分連線至資料庫執行個體，然後執行以下命令。

   ```
   1. EXEC rdsadmin.rdsadmin_util.grant_apex_admin_role;
   2. grant APEX_ADMINISTRATOR_ROLE to master;
   3. @/home/apexuser/apex/apxchpwd.sql
   ```

   將 `master` 改為您的主要使用者名稱。當 `apxchpwd.sql` 指令碼提示您時，請輸入新的 `admin` 密碼。

1. 在瀏覽器中返回 Oracle APEX 管理視窗，然後選擇**管理**。接著選擇 **Application Express Internal Administration (Application Express 內部管理)**。當提示您提供登入資料時，請輸入下列資訊：
   + **使用者名稱** – `admin` 
   + **密碼** – 使用 `apxchpwd.sql` 指令碼所設定的密碼 

   選擇 **Login (登入)**，然後設定 `admin` 使用者的新密碼。

您的接聽程式現在可供使用。

# 設定 Oracle Rest Data Services (ORDS)
<a name="Appendix.Oracle.Options.APEX.ORDSConf"></a>

下列主題列出 ORDS 21 和 22 的組態選項：

**Topics**
+ [

## 安裝並設定 ORDS 21 及更低版本
](#Appendix.Oracle.Options.APEX.ORDS)
+ [

## 安裝並設定 ORDS 22 及更新版本
](#Appendix.Oracle.Options.APEX.ORDS22)

## 安裝並設定 ORDS 21 及更低版本
<a name="Appendix.Oracle.Options.APEX.ORDS"></a>

您現在可以安裝和設定 Oracle Rest Data Services (ORDS)，以便與 Oracle APEX 搭配使用。對於 Oracle APEX 5.0 版及更新版本，請使用 ORDS 19.1 版到 21 版。若要了解如何安裝 ORDS 22 及更新版本，請參閱 [安裝並設定 ORDS 22 及更新版本](#Appendix.Oracle.Options.APEX.ORDS22)。

將接聽程式安裝在另一部主機上，例如 Amazon EC2 執行個體、公司的現場部署伺服器或您的桌上型電腦。對於本節中的範例，我們假設您的主機名稱是 `myapexhost.example.com`，而且主機執行 Linux。

**安裝並設定 ORDS 21 及更低版本以搭配 Oracle APEX 使用**

1. 前往 [Oracle REST Data Services](https://www.oracle.com/database/technologies/appdev/rest-data-services-downloads-212.html)，並檢查讀我檔案。請確認您已安裝必要版本的 Java。

1. 為您的 ORDS 安裝建立新的目錄。

   ```
   mkdir /home/apexuser/ORDS
   cd /home/apexuser/ORDS
   ```

1. 從 [Oracle REST資料服務](https://www.oracle.com/database/technologies/appdev/rest-data-services-downloads-212.html)下載檔案 `ords.version.number.zip`。

1. 將檔案解壓縮在 `/home/apexuser/ORDS` 目錄中。

1. 如果要在多重租用資料庫中安裝 ORDS，請將下行新增至 `/home/apexuser/ORDS/params/ords_params.properties` 檔案：

   ```
   pdb.disable.lockdown=false
   ```

1. 授與主要使用者安裝 ORDS 所需的權限。

   安裝 Oracle APEX 的選項之後，請為主要使用者提供安裝 ORDS 結構描述所需的權限。您可以連線至資料庫並執行下列命令來完成此動作。以您的主要使用者的大寫名稱取代 `MASTER_USER`。
**重要**  
輸入使用者名稱時，除非您使用區分大小寫的識別符來建立使用者，否則請使用大寫。例如，如果您執行 `CREATE USER myuser` 或 `CREATE USER MYUSER`，資料字典會存放 `MYUSER`。不過，如果您在 `CREATE USER "MyUser"` 中使用雙引號，資料字典則會存放 `MyUser`。如需更多詳細資訊，請參閱 [將 SELECT 或 EXECUTE 權限授予 SYS 物件](Appendix.Oracle.CommonDBATasks.TransferPrivileges.md)。

   ```
   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 版和更新版本。

1. 使用下載的 ords.war 檔案來安裝 ORDS 結構描述。

   ```
   java -jar ords.war install advanced
   ```

   程式會提示您輸入下列資訊。方括號中是預設值。如需詳細資訊，請參閱 Oracle 文件中的 [Oracle REST Data Services 簡介](https://docs.oracle.com/en/database/oracle/oracle-rest-data-services/20.2/aelig/installing-REST-data-services.html#GUID-6F7B4E61-B730-4E73-80B8-F53299123730)。
   + 輸入要存放組態資料的位置：

     輸入 */home/apexuser/ORDS*。這是 ORDS 組態檔案的位置。
   + 指定要使用的資料庫連線類型。輸入 [1] 基本 [2] TNS [3] 自訂 URL [1] 的數字：

     選擇所需的連線類型。
   + 輸入資料庫伺服器的名稱 [localhost]：*DB\$1instance\$1endpoint*

     選擇預設值或輸入正確值。
   + 輸入資料庫接聽程式連接埠 [1521]：*DB\$1instance\$1port*

     選擇預設值或輸入正確值。
   + 輸入 1 以指定資料庫服務名稱，或輸入 2 以指定資料庫 SID [1]：

     選擇 `2` 以指定資料庫 SID。
   + 資料庫 SID [xe]

     選擇預設值或輸入正確值。
   + 若要驗證/安裝 Oracle REST Data Services 結構描述，請輸入 1，或輸入 2 以略過此步驟 [1]：

     選擇 `1`。此步驟會建立名為 ORDS\$1PUBLIC\$1USER 的 Oracle REST Data Services 代理使用者。
   + 輸入 ORDS\$1PUBLIC\$1USER 的資料庫密碼：

     輸入密碼，然後確認。
   + 需要使用管理員權限登入，以驗證 Oracle REST Data Services 結構描述。

     輸入管理員使用者名稱：*master\$1user*

     輸入 *master\$1user* 的資料庫密碼：*master\$1user\$1password*

     確認密碼：*master\$1user\$1password*
**注意**  
指定此處所顯示提示以外的密碼，作為安全最佳實務。
   + 輸入 ORDS\$1METADATA [SYSAUX] 的預設資料表空間。

     輸入 ORDS\$1METADATA [TEMP] 的暫時資料表空間。

     輸入 ORDS\$1PUBLIC\$1USER [USERS] 的預設資料表空間。

     輸入 ORDS\$1PUBLIC\$1USER [TEMP] 的暫時資料表空間。
   + 如果要使用 PL/SQL 閘道請輸入 1，或輸入 2 來略過此步驟。如果您使用 Oracle Application Express 或從 mod\$1plsql 遷移，則必須輸入 1 [1]。

     選擇預設值。
   + 輸入 PL/SQL Gateway 資料庫使用者名稱 [APEX\$1PUBLIC\$1USER]

     選擇預設值。
   + 輸入 APEX\$1PUBLIC\$1USER 的資料庫密碼：

     輸入密碼，然後確認。
   + 輸入 1 以指定 Application Express RESTful Services 資料庫使用者 (APEX\$1LISTENER, APEX\$1REST\$1PUBLIC\$1USER) 的密碼，或輸入 2 以略過此步驟 [1]：

     若為 APEX 4.1.1.V1，請選擇 `2`；至於其他所有 APEX 版本，請選擇 `1`。
   + [APEX 4.1.1.v1 不需要此步驟] APEX\$1LISTENER 的資料庫密碼

     輸入密碼 (如需要)，然後確認。
   + [APEX 4.1.1.v1 不需要此步驟] APEX\$1REST\$1PUBLIC\$1USER 的資料庫密碼

     輸入密碼 (如需要)，然後確認。
   + 輸入數字以選取要啟用的功能：

     輸入 `1` 以啟用所有功能：SQL Developer Web、REST Enabled SQL 和 Database API。
   + 若要以獨立模式啟動，請輸入 1，或輸入 2 以結束 [1]：

     輸入 `1`。
   + 輸入 APEX 靜態資源位置：

     如果您將 APEX 安裝檔案解壓縮至 `/home/apexuser`，請輸入 `/home/apexuser/apex/images`。否則，請輸入 `unzip_path/apex/images`，其中 *unzip\$1path* 是您將檔案解壓縮的目錄所在位置。
   + 若使用 HTTP，請輸入 1；或若使用 HTTPS [1]，則請輸入 2：

     如果您輸入 `1`，請指定 HTTP 連接埠。如果您輸入 `2`，請指定 HTTPS 連接埠和 SSL 主機名稱。HTTPS 選項會提示您指定提供憑證的方式：
     + 輸入 `1` 以使用自我簽署的憑證。
     + 輸入 `2` 以提供您自己的憑證。如果您輸入 `2`，請指定 SSL 憑證的路徑，以及 SSL 憑證私密金鑰的路徑。

1. 設定 APEX `admin` 使用者的密碼。若要這麼做，請使用 SQL\$1Plus 以主要使用者身分連線至資料庫執行個體，然後執行以下命令。

   ```
   1. EXEC rdsadmin.rdsadmin_util.grant_apex_admin_role;
   2. grant APEX_ADMINISTRATOR_ROLE to master;
   3. @/home/apexuser/apex/apxchpwd.sql
   ```

   將 `master` 改為您的主要使用者名稱。當 `apxchpwd.sql` 指令碼提示您時，請輸入新的 `admin` 密碼。

1. 啟動 ORDS 接聽程式。執行下列程式碼。

   ```
   java -jar ords.war
   ```

   第一次啟動 ORDS 時會提示您提供 APEX 靜態資源的位置。此影像資料夾位於 APEX 安裝目錄的 `/apex/images` 目錄中。

1. 在瀏覽器中返回 Oracle APEX 管理視窗，然後選擇**管理**。接著選擇 **Application Express Internal Administration (Application Express 內部管理)**。當提示您提供登入資料時，請輸入下列資訊：
   + **使用者名稱** – `admin` 
   + **密碼** – 使用 `apxchpwd.sql` 指令碼所設定的密碼 

   選擇 **Login (登入)**，然後設定 `admin` 使用者的新密碼。

您的接聽程式現在可供使用。

## 安裝並設定 ORDS 22 及更新版本
<a name="Appendix.Oracle.Options.APEX.ORDS22"></a>

您現在可以安裝和設定 Oracle Rest Data Services (ORDS)，以便與 Oracle APEX 搭配使用。對於本節中的範例，我們假設您的個別主機名稱是 `myapexhost.example.com`，而且主機執行 Linux。ORDS 22 的指示與先前版本的指示不同。

**安裝並設定 ORDS 22 及更新版本以搭配 Oracle APEX 使用**

1. 前往 [Oracle REST Data Services](http://www.oracle.com/technetwork/developer-tools/rest-data-services/downloads/index.html)，並檢查您計畫下載之 ORDS 版本的讀我檔案。請確認您已安裝必要版本的 Java。

1. 為您的 ORDS 安裝建立新的目錄。

   ```
   mkdir /home/apexuser/ORDS
   cd /home/apexuser/ORDS
   ```

1. 從 [Oracle REST Data Services](http://www.oracle.com/technetwork/developer-tools/rest-data-services/downloads/index.html) 下載 `ords.version.number.zip` 或 `ords-latest.zip` 檔案。

1. 將檔案解壓縮在 `/home/apexuser/ORDS` 目錄中。

1. 授與主要使用者安裝 ORDS 所需的權限。

   安裝 `APEX` 選項之後，請為主要使用者提供安裝 ORDS 結構描述所需的權限。您可以登入資料庫並執行下列命令來完成此操作。以您的主要使用者的大寫名稱取代 `MASTER_USER`。
**重要**  
輸入使用者名稱時，除非您使用區分大小寫的識別符來建立使用者，否則請使用大寫。例如，如果您執行 `CREATE USER myuser` 或 `CREATE USER MYUSER`，資料字典會存放 `MYUSER`。不過，如果您在 `CREATE USER "MyUser"` 中使用雙引號，資料字典則會存放 `MyUser`。如需詳細資訊，請參閱[將 SELECT 或 EXECUTE 權限授予 SYS 物件](Appendix.Oracle.CommonDBATasks.TransferPrivileges.md)。

   ```
   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 及更新版本。

1. 使用下載的 `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 簡介](https://docs.oracle.com/en/database/oracle/oracle-rest-data-services/20.2/aelig/installing-REST-data-services.html#GUID-6F7B4E61-B730-4E73-80B8-F53299123730)。
   + `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\$1instance\$1endpoint***

     選擇預設值 或輸入正確值。
   + `Enter the database listener port [1521]:` ***DB\$1instance\$1port***

     選擇預設值 **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`)。

1. 設定 Oracle APEX `admin` 使用者的密碼。若要這麼做，請使用 SQL\$1Plus 以主要使用者身分連線至資料庫執行個體，然後執行以下命令。

   ```
   1. EXEC rdsadmin.rdsadmin_util.grant_apex_admin_role;
   2. grant APEX_ADMINISTRATOR_ROLE to master;
   3. @/home/apexuser/apex/apxchpwd.sql
   ```

   將 `master` 改為您的主要使用者名稱。當 `apxchpwd.sql` 指令碼提示您時，請輸入新的 `admin` 密碼。

1. 使用 `ords` 指令碼搭配 `serve` 命令，以獨立模式執行 ORDS。對於生產部署，請考慮使用支援的 Java EE 應用程式伺服器，例如 Apache Tomcat 或 Oracle WebLogic Server。如需詳細資訊，請參閱 Oracle Database 文件中的[部署和監控 Oracle REST Data Services](https://docs.oracle.com/en/database/oracle/oracle-rest-data-services/23.1/ordig/deploying-and-monitoring-oracle-rest-data-services.html#GUID-6791F5DF-AC67-4885-BFFA-B80964C17EC9)。

   ```
   /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。

1. 在瀏覽器中返回 Oracle APEX 管理視窗，然後選擇**管理**。接著選擇 **Application Express Internal Administration (Application Express 內部管理)**。當提示您提供登入資料時，請輸入下列資訊：
   + **使用者名稱** – `admin` 
   + **密碼** – 使用 `apxchpwd.sql` 指令碼所設定的密碼 

   選擇 **Login (登入)**，然後設定 `admin` 使用者的新密碼。

您的接聽程式現在可供使用。

# 升級和移除 Oracle APEX
<a name="Appendix.Oracle.Options.APEX.UpgradeandRemove"></a>

若要升級或移除 Oracle APEX，請遵循本主題中的指示：

**Topics**
+ [

## 升級 Oracle APEX 版本
](#Appendix.Oracle.Options.APEX.Upgrade)
+ [

## 移除 APEX 和 APEX-DEV 選項
](#Appendix.Oracle.Options.APEX.Remove)

## 升級 Oracle APEX 版本
<a name="Appendix.Oracle.Options.APEX.Upgrade"></a>

**重要**  
升級 Oracle APEX 之前，請備份資料庫執行個體。如需詳細資訊，請參閱[為 Amazon RDS 的單一可用區域資料庫執行個體建立資料庫快照](USER_CreateSnapshot.md)及[測試 Oracle 資料庫升級](USER_UpgradeDBInstance.Oracle.UpgradeTesting.md)。

若要連同資料庫執行個體一起升級 Oracle APEX，請執行下列動作：
+ 為資料庫執行個體的升級版本建立新的選項群組。
+ 將 `APEX` 和 `APEX-DEV` 選項的升級版本新增至新的選項群組。務必包括資料庫執行個體使用的其他任何選項。如需更多詳細資訊，請參閱 [選項群組考量](USER_UpgradeDBInstance.Oracle.OGPG.md#USER_UpgradeDBInstance.Oracle.OGPG.OG)。
+ 升級資料庫執行個體時，請為升級的資料庫執行個體指定新的選項群組。

升級 Oracle APEX 的版本之後，舊版的 Oracle APEX 結構描述可能仍存在於資料庫中。如果不再需要，您可以在升級之後從資枓庫中刪除舊的 Oracle APEX 結構描述。

如果您升級 Oracle APEX 版本，但舊版 Oracle APEX 中未設定 RESTful 服務，建議您設定 RESTful 服務。如需詳細資訊，請參閱[設定適用於 Oracle APEX 的 RESTful 服務](Appendix.Oracle.Options.APEX.settingUp.md#Appendix.Oracle.Options.APEX.ConfigureRESTful)。

在某些情況下，當您打算升級資料庫執行個體的主要版本時，您可能會發現使用的 Oracle APEX 版本與目標資料庫版本不相容。在這類情況下，您可先升級 Oracle APEX 版本，再升級資料庫執行個體。先升級 Oracle APEX 可以縮短升級資料庫執行個體所需的時間。

**注意**  
在升級 Oracle APEX 後，請安裝並設定接聽程式以使用升級後的版本。如需說明，請參閱[設定 Oracle APEX Listener](Appendix.Oracle.Options.APEX.settingUp.md#Appendix.Oracle.Options.APEX.Listener)。

## 移除 APEX 和 APEX-DEV 選項
<a name="Appendix.Oracle.Options.APEX.Remove"></a>

您可以從資料庫執行個體移除 `APEX` 和 `APEX-DEV` 選項。若要從您的資料庫執行個體中移除這些選項，請執行下列其中一個動作：
+ 若要從多個資料庫執行個體中移除 `APEX` 和 `APEX-DEV` 選項，請從所屬的選項群組中移除選項。此變更會影響使用選項群組的所有資料庫執行個體。當您從附加至多個資料庫執行個體的選項群組中移除選項時，在資料庫執行個體重新啟動期間，會發生短暫停機。

  如需詳細資訊，請參閱[從選項群組移除選項](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption)。
+ 若要從單一資料庫執行個體中移除 `APEX` 和 `APEX-DEV` 選項，請修改執行個體，並指定不包含這些選項的不同選項群組。您可以指定預設的 (空白) 選項群組或不同的自訂選項群組。當您移除選項時，因為資料庫執行個體會自動重新啟動，所以會發生短暫停機。

  如需詳細資訊，請參閱[修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md)。

當您從資料庫執行個體中移除 `APEX` 和 `APEX-DEV` 選項時，APEX 結構描述也會從資料庫中移除。