Oracle Application Express (APEX) - Amazon Relational Database Service

Oracle Application Express (APEX)

Amazon RDS では、APEX および APEX-DEV オプションを使用した Oracle Application Express (APEX) がサポートされています。Oracle APEX は、ランタイム環境として、あるいはウェブベースのアプリケーション用の完全開発環境としてデプロイできます。Oracle APEX を使用して、ウェブブラウザ内でアプリケーション全体を構築できます。詳細については、Oracle ドキュメントの Oracle Application Express を参照してください。

APEX コンポーネント

Oracle APEX は、次の主要コンポーネントで構成されています。

  • APEX アプリケーションおよびコンポーネントのメタデータを格納するリポジトリ。リポジトリは、テーブル、インデックス、および Amazon RDS DB インスタンスにインストールされている他のオブジェクトで構成されます。

  • Oracle APEX クライアントとの HTTP 通信を管理するリスナー。リスナーは別個のホスト (Amazon EC2 インスタンス、社内のオンプレミスサーバー、またはデスクトップコンピュータなど) に配置します。リスナーは、ウェブブラウザからの受信接続を受け入れ、処理するためにそれらを Amazon RDS DB インスタンスに転送した後、リポジトリからの結果をブラウザに戻します。Amazon RDS for Oracle は、次のタイプのリスナーをサポートしています。

    • APEX バージョン 5.0 以降では、Oracle Rest Data Services (ORDS) バージョン 19.1 以上を使用します。サポートされている最新バージョンの Oracle APEX および ORDS を使用することをお勧めします。このドキュメントでは、下位互換性のためだけに古いバージョンについて説明しています。

    • APEX バージョン 4.1.1 では、Oracle APEX リスナーのバージョン 1.1.4 を使用できます。

    • Oracle HTTP Server やmod_plsql リスナーを使用できます。

      注記

      Amazon RDS では、埋込み PL/SQL ゲートウェイの Oracle XML DB HTTP サーバーはサポートされません。これを APEX リスナーとして使用することはできません。一般的に、Oracle では、インターネット上で稼働するアプリケーションで埋め込みの PL/SQL ゲートウェイを使用しないことが推奨されています。

    詳細については、Oracle ドキュメントの「Web リスナーの選択について」を参照してください。

RDS for Oracle DB インスタンスに Amazon RDS APEX オプションを追加すると、Amazon RDS は Oracle APEX リポジトリのみをインストールします。リスナーを別のホストにインストールします。

APEX バージョンの要件

APEX オプションは、DB インスタンスの DB インスタンスクラスでストレージを使用します。以下に、Oracle APEX でサポートされているバージョンおよびおよそのストレージ要件を示します。

APEX バージョン ストレージの要件 サポートされている Oracle Database のバージョン メモ

Oracle APEX バージョン 23.2.v1

110 MiB

すべて

このバージョンには、パッチ 35895964: PSE BUNDLE FOR APEX 23.2 (PSES ON TOP OF 23.2.0)、PATCH_VERSION 6 が含まれています。

Oracle APEX バージョン 23.1.v1

106 MiB

すべて

このバージョンには、パッチ 35283657: PSE BUNDLE FOR APEX 23.1 (PSES ON TOP OF 23.1.0), PATCH_VERSION 2 が含まれています。

Oracle APEX バージョン 22.2.v1

106 MiB

すべて

このバージョンには、パッチ 34628174: PSE BUNDLE FOR APEX 22.2 (PSES ON TOP OF 22.2.0)、PATCH_VERSION 4 が含まれています。

Oracle APEX バージョン 22.1.v1

124 MiB

すべて

このバージョンには、パッチ 34020981: PSE BUNDLE FOR APEX 22.1 (PSES ON TOP OF 22.1.0)、PATCH_VERSION 6 が含まれています。

Oracle APEX バージョン 21.2.v1

125 MiB

すべて

このバージョンには、パッチ 33420059: PSE BUNDLE FOR APEX 21.2 (PSES ON TOP OF 21.2.0)、PATCH_VERSION 8 が含まれています。

Oracle APEX バージョン 21.1.v1

125 MiB

すべて

このバージョンには、パッチ 32598392 (PSE BUNDLE FOR APEX 21.1、PATCH_VERSION 3) が含まれています。

Oracle APEX バージョン 20.2.v1

148 MiB

Oracle Database 21c を除くすべて

このバージョンには、パッチ 32006852 (PSE BUNDLE FOR APEX 20.2、PATCH_VERSION 2020.11.12) が含まれています。以下のクエリを実行すると、パッチの番号と日付を確認できます。

SELECT PATCH_VERSION, PATCH_NUMBER FROM APEX_PATCHES;

Oracle APEX バージョン 20.1.v1

173 MiB

Oracle Database 21c を除くすべて

このバージョンには、パッチ 30990551 (PSE BUNDLE FOR APEX 20.1, PATCH_VERSION 2020.07.15) が含まれています。

Oracle APEX バージョン 19.2.v1

149 MiB

Oracle Database 21c を除くすべて

Oracle APEX バージョン 19.1.v1

148 MiB

Oracle Database 21c を除くすべて

ダウンロード可能な APEX.zip ファイルについては、Oracle のウェブサイトにある「Oracle APEX 以前のリリースアーカイブ」を参照してください。

Oracle APEX と ORDS の要件と制限事項

APEX と ORDS に関する以下の要件に注意してください。

  • Java ランタイム環境 (JRE) を使用する必要があります。

  • Oracle クライアントのインストールには次が含まれている必要があります。

    • 管理タスク用の SQL*Plus または SQL Developer

    • RDS for Oracle DB インスタンスへの接続を設定するための Oracle Net Services

APEX と ORDS に関する次の制限に注意してください。

  • RDS for Oracle CDB は ORDS 22 以降では使用できません。回避策として、ORDS の下位バージョンを使用するか、Oracle Database 19c の非 CDB を使用することができます。

APEX および APEX-DEV オプションの追加

DB インスタンスに APEX および APEX-DEV オプションを追加するには、次の手順を実行します。

  1. 新しいオプショングループを作成するか、既存のオプショングループをコピーまたは変更します。

  2. オプショングループに APEXAPEX-DEV オプションを追加します。

  3. オプショングループを DB インスタンスに関連付けます。

Amazon RDS APEX オプションを追加する場合、DB インスタンスを自動的に再起動している間に短い停止が発生します。

注記

APEX_MAIL は、APEX オプションがインストールされている場合に使用できます。APEX_MAIL パッケージの実行権限が PUBLIC に付与されるため、APEX 管理者アカウントを使用する必要はありません。

APEX オプションを DB インスタンスに追加するには
  1. 使用するオプショングループを決定します。新しいオプショングループを作成することも、既存のオプショングループを使用することもできます。既存のオプショングループを使用する場合は、次のステップは飛ばしてください。または、次の設定でカスタム DB オプショングループを作成します。

    1. [Engine] で、使用する Oracle のエディションを選択します。APEX オプションは、すべてのエディションでサポートされます。

    2. [メジャーエンジンのバージョン] で、DB インスタンスのバージョンを選択します。

    詳細については、「オプショングループを作成する」を参照してください。

  2. オプショングループにオプションを追加します。Oracle APEX ランタイム環境のみをデプロイする場合には、APEX オプションのみを追加します。完全なデプロイ環境をデプロイする場合は、APEXAPEX-DEV の両方のオプションを追加します。

    [ Version] で使用する APEX のバージョンを選択します。

    重要

    既に 1 つ以上の DB インスタンスにアタッチされている既存のオプショングループに APEX オプションを追加すると、短い停止が発生します。この停止の間、DB インスタンスはすべて、自動的に再起動されます。

    オプションの追加方法の詳細については、「オプショングループにオプションを追加する」を参照してください。

  3. 新規または既存の DB インスタンスに、DB オプショングループを適用します。

    • 新規 DB インスタンスの場合は、インスタンスを起動するときにオプショングループを適用します。詳細については、「Amazon RDS DB インスタンスの作成」を参照してください。

    • 既存の DB インスタンスの場合は、インスタンスを修正し、新しいオプショングループを添付することで、オプショングループを適用します。既存の DB インスタンスに APEX オプションを追加すると、DB インスタンスを自動的に再起動している間に短い停止が発生します。詳細については、「Amazon RDS DB インスタンスを変更する」を参照してください。

パブリックユーザーアカウントのロック解除

Amazon RDS APEX オプションをインストールした後に、必ず次の手順を実行してください。

  1. APEX パブリックユーザーアカウントのパスワードを変更します。

  2. アカウントのロックを解除します。

Oracle SQL*Plus コマンドラインユーティリティを使用してこれを行うことができます。DB インスタンスにマスターユーザーとして接続し、次のコマンドを発行します。new_password を任意のパスワードに置き換えます。

ALTER USER APEX_PUBLIC_USER IDENTIFIED BY new_password; ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK;

Oracle APEX の RESTful サービスの設定

APEX で RESTful サービスを設定するには (APEX 4.1.1.V1 では必要ありません)、SQL*Plus を使用して、マスターユーザーとして DB インスタンスに接続します。接続したら、rdsadmin.rdsadmin_run_apex_rest_config ストアドプロシージャを実行します。ストアドプロシージャを実行するときは、次のユーザーにパスワードを提供します。

  • APEX_LISTENER

  • APEX_REST_PUBLIC_USER

ストアドプロシージャは apex_rest_config.sql スクリプトを実行し、そのスクリプトによりそれらのユーザーの新しいデータベースアカウントが作成されます。

注記

Oracle APEX バージョン 4.1.1.v1 に対する設定は不要です。この Oracle APEX バージョンに限り、ストアドプロシージャの実行は不要です。

次のコマンドはストアドプロシージャを実行します。

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

ORDS のインストールの準備

ORDS をインストールする前に、権限を持っていない OS ユーザーを作成し、APEX インストールファイルをダウンロードして解凍する必要があります。

ORDS のインストールを準備するには
  1. myapexhost.example.com として root にログインします。

  2. リスナーのインストールを所有する権限を持っていない OS ユーザーを作成します。以下のコマンドでは、apexuser という名前の新規ユーザーを作成します。

    useradd -d /home/apexuser apexuser

    以下のコマンドは、新規ユーザーにパスワードを割り当てます。

    passwd apexuser;
  3. myapexhost.example.comapexuser としてログインし、APEX のインストールファイルを Oracle から /home/apexuser ディレクトリにダウンロードします。

  4. ファイルを /home/apexuser ディレクトリに解凍します。

    unzip apex_version.zip

    ファイルは、apex ディレクトリ内に /home/apexuser ディレクトリとして解凍されます。

  5. myapexhost.example.comapexuser としてログインしている間に Oracle から Oracle REST Data Services ファイルを /home/apexuser ディレクトリにダウンロードします。http://www.oracle.com/technetwork/developer-tools/apex-listener/downloads/index.html

ORDS 21 以前のインストールと設定

これで、Oracle APEX で使用する Oracle Rest Data Services (ORDS) をインストールして設定する準備が整いました。APEX バージョン 5.0 以降では、ORDS バージョン 19.1~21 を使用します。ORDS 22 以降をインストールする方法については、「ORDS 22 以降のインストールと設定」を参照してください。

リスナーは別個のホスト (Amazon EC2 インスタンス、社内のオンプレミスサーバー、またはデスクトップコンピュータなど) にインストールします。このセクションの例では、ホストの名前が myapexhost.example.com であり、ホストが Linux を実行していると仮定します。

Oracle APEX で使用する ORDS 21 以前をインストールして設定するには
  1. Oracle REST data services に移動し、Readme を確認します。必要なバージョンの Java がインストールされていることを確認します。

  2. ORDS インストール用の新しいディレクトリを作成します。

    mkdir /home/apexuser/ORDS cd /home/apexuser/ORDS
  3. Oracle REST Data Services から、ファイル ords.version.number.zip をダウンロードします。

  4. ファイルを /home/apexuser/ORDS ディレクトリに解凍します。

  5. マルチテナントデータベースに ORDS をインストールする場合は、ファイル /home/apexuser/ORDS/params/ords_params.properties に次の行を追加します。

    pdb.disable.lockdown=false
  6. マスターユーザーに ORDS のインストールに必要な権限を付与します。

    Amazon RDS 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 以降に適用されます。

  7. ダウンロードした ords.war ファイルを使用して ORDS スキーマをインストールします。

    java -jar ords.war install advanced

    プログラムが以下の情報のプロンプトを表示します。デフォルト値は角括弧で囲まれています。詳細については、Oracle ドキュメントの Introduction to Oracle REST Data Services を参照してください。

    • 設定データを保存する場所を入力します。

      /home/apexuser/ORDS」と入力します。これは ORDS 設定ファイルの場所です。

    • 使用するデータベース接続タイプを指定します。[1] ベーシック、[2] TNS、[3] カスタム URL に対応する番号を入力します [1]:

      目的の接続タイプを選択します。

    • データベースサーバーの名前を入力します [localhost]: DB_instance_endpoint

      デフォルト値を選択するか、適切な値を入力します。

    • データベースリスナーポートを入力します [1521]: DB_instance_port

      デフォルト値を選択するか、適切な値を入力します。

    • データベースサービス名を指定するには 1 を、データベース SID を指定するには 2 を入力してください [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 Gateway を使用する場合は 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 のデータベースパスワード

      パスワードを入力し (必要な場合)、確認のためにもう一度入力します。

    • 有効にする機能に対応する番号を入力します。

      SQL Developer Web、REST Enabled SQL、および Database API 機能をすべて有効にするには、1 を入力します。

    • スタンドアロンモードでスタートする場合は 1 を、終了する場合は 2 を入力します [1]:

      1 と入力します。

    • APEX 静的リソースの場所を入力します。

      APEX インストールファイルを /home/apexuser に解凍した場合は、「/home/apexuser/apex/images」と入力します。それ以外の場合は、unzip_path/apex/images を入力します。unzip_path は、ファイルを解凍したディレクトリです。

    • HTTP を使用する場合は 1 を、HTTPS を使用する場合は 2 を入力します [1]:

      1 を入力する場合は、HTTP ポートを指定します。2 を入力する場合は、HTTPS ポートと SSL ホスト名を指定します。HTTPS オプションでは、証明書を提供する方法を指定するように求められます。

      • 自己署名証明書を使用するには、1 を入力します。

      • 独自の証明書を提供するには、2 を入力します。2 を入力する場合は、SSL 証明書のパス、およびその証明書のシークレットキーのパスを指定します。

  8. APEX admin ユーザーのパスワードを設定します。これを行うには、SQL*Plus を使用して DB インスタンスにマスターユーザーとして接続し、次のコマンドを実行します。

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

    master を自身のマスターユーザー名に置き換えます。apxchpwd.sql スクリプトによってプロンプトが表示されたら、新しい admin パスワードを入力します。

  9. ORDS リスナーを起動します。以下の コードを実行します。

    java -jar ords.war

    ORDS を初めてスタートすると、APEX の静的リソースの場所を指定するように求められます。このイメージフォルダは、APEX のインストールディレクトリ内の /apex/images ディレクトリにあります。

  10. ブラウザで APEX 管理ウィンドウに戻り、[Administration] を選択します。次に、[Application Express Internal Administration] を選択します。認証情報を求められたら、以下の情報を入力します。

    • User name - admin

    • Password - apxchpwd.sql スクリプトを使用して設定したパスワード。

    [Login] を選択し、その admin ユーザーの新しいパスワードを設定します。

これで、リスナーを使用する準備ができました。

ORDS 22 以降のインストールと設定

これで、Oracle APEX で使用する Oracle Rest Data Services (ORDS) をインストールして設定する準備が整いました。ORDS 22 の手順は、以前のリリースの手順とは異なります。

Oracle APEX で使用するための ORDS 22 以降をインストールして設定するには
  1. Oracle REST data services に移動し、ダウンロードする ORDS バージョンの Readme を確認します。必要なバージョンの Java がインストールされていることを確認します。

  2. ORDS インストール用の新しいディレクトリを作成します。

    mkdir /home/apexuser/ORDS cd /home/apexuser/ORDS
  3. Oracle REST Data Services から、ファイル ords.version.number.zip または ords-latest.zip をダウンロードします。

  4. ファイルを /home/apexuser/ORDS ディレクトリに解凍します。

  5. マスターユーザーに ORDS のインストールに必要な権限を付与します。

    Amazon RDS 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 以降に適用されます。

  6. ダウンロードした 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) アーキテクチャを実行する DB インスタンスでは、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 ドキュメントの Introduction to 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 DB インスタンスで使用するデータベース名を入力します。

    • Provide database user name with administrator privileges

      RDS for Oracle DB インスタンスのマスターユーザー名を入力します。

    • Enter the database password for [username]:

      RDS for Oracle DB インスタンスのマスターパスワードを入力します。

    • 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:

      APEX インストールファイル (/home/apexuser/apex/images) へのパスを入力します。

  7. APEX admin ユーザーのパスワードを設定します。これを行うには、SQL*Plus を使用して DB インスタンスにマスターユーザーとして接続し、次のコマンドを実行します。

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

    master を自身のマスターユーザー名に置き換えます。apxchpwd.sql スクリプトによってプロンプトが表示されたら、新しい admin パスワードを入力します。

  8. ords スクリプトで serve コマンドを使用して ORDS をスタンドアロンモードで実行します。実稼働環境へのデプロイでは、Apache Tomcat や Oracle WebLogic Server など、サポートされている Java EE アプリケーションサーバーの使用を検討します。詳細については、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 が実行中でも 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 は CDB インスタンスでのみサポートされている ords_util.authorize_plsql_gateway プロシージャを使用します。非 CDB インスタンスでは、このプロシージャを wwv_flow_epg_include_modules.authorize パッケージに変更できます。ユースケースに応じてリクエスト検証関数を設定するためのベストプラクティスについては、Oracle Database のドキュメントと Oracle Support を参照してください。

  9. ブラウザで APEX 管理ウィンドウに戻り、[Administration] を選択します。次に、[Application Express Internal Administration] を選択します。認証情報を求められたら、以下の情報を入力します。

    • User name - admin

    • Password - apxchpwd.sql スクリプトを使用して設定したパスワード。

    [Login] を選択し、その admin ユーザーの新しいパスワードを設定します。

これで、リスナーを使用する準備ができました。

Oracle APEX リスナーの設定

注記

Oracle APEX リスナーは非推奨です。

Amazon RDS for Oracle は、引き続き APEX バージョン 4.1.1 および Oracle APEX リスナーバージョン 1.1.4 をサポートしています。サポートされている最新バージョンの Oracle APEX および ORDS を使用することをお勧めします。

Oracle APEX Listener は別個のホストにインストールします (Amazon EC2 インスタンス、社内のオンプレミスサーバー、またはデスクトップコンピュータ)。ここでは、ホスト名が myapexhost.example.com であり、ホストで Linux が実行されていることが前提です。

Oracle APEX リスナーのインストールの準備

Oracle APEX リスナーをインストールする前に、権限のない OS ユーザーを作成し、APEX インストールファイルをダウンロードして解凍する必要があります。

Oracle APEX リスナーのインストールを準備するには
  1. myapexhost.example.com として root にログインします。

  2. リスナーのインストールを所有する権限を持っていない OS ユーザーを作成します。以下のコマンドでは、apexuser という名前の新規ユーザーを作成します。

    useradd -d /home/apexuser apexuser

    以下のコマンドは、新規ユーザーにパスワードを割り当てます。

    passwd apexuser;
  3. myapexhost.example.comapexuser としてログインし、APEX のインストールファイルを Oracle から /home/apexuser ディレクトリにダウンロードします。

  4. ファイルを /home/apexuser ディレクトリに解凍します。

    unzip apex_<version>.zip

    ファイルは、apex ディレクトリ内に /home/apexuser ディレクトリとして解凍されます。

  5. myapexhost.example.comapexuser としてログインしている間に、Oracle APEX Listener ファイルを Oracle から /home/apexuser ディレクトリにダウンロードします。

Oracle APEX リスナーのインストールと設定

APEX を使用する前に、apex.war ファイルをダウンロードし、Java を使用して Oracle APEX リスナーをインストールしてから、リスナーを起動する必要があります。

Oracle APEX リスナーをインストールして設定するには
  1. Oracle APEX リスナーに基づいて新しいディレクトリを作成し、リスナーファイルを開きます。

    以下のコードを実行します。

    mkdir /home/apexuser/apexlistener cd /home/apexuser/apexlistener unzip ../apex_listener.version.zip
  2. 以下の コードを実行します。

    java -Dapex.home=./apex -Dapex.images=/home/apexuser/apex/images -Dapex.erase -jar ./apex.war
  3. 次のプログラムプロンプトの情報を入力します。

    • APEX Listener Administrator のユーザー名。デフォルト値は adminlistener です。

    • APEX Listener Administrator のパスワード。

    • APEX リスナーマネージャのユーザー名。デフォルトは managerlistener です。

    • APEX Listener Administrator のパスワード。

    プログラムは、次のように設定を完了するために必要な URL を出力します。

    INFO: Please complete configuration at: http://localhost:8080/apex/listenerConfigure Database is not yet configured
  4. Oracle Application Express を使用できるように、Oracle APEX リスナーを実行したままにします。この設定手順を完了したら、リスナーをバックグラウンドで実行できます。

  5. ウェブブラウザから、APEX Listener プログラムにより提供される URL にアクセスします。Oracle Application Express Listener の管理ウィンドウが表示されます。次の情報を入力します。

    • Username - APEX_PUBLIC_USER

    • [Password] - APEX_PUBLIC_USER のパスワード このパスワードは、APEX リポジトリの設定時に前の手順で指定したパスワードです。詳細については、「パブリックユーザーアカウントのロック解除」を参照してください。

    • Connection Type - Basic

    • Hostname - Amazon RDS DB インスタンスのエンドポイント。mydb.f9rbfa893tft.us-east-1.rds.amazonaws.com など。

    • [Port] - 1521

    • SID - Amazon RDS DB インスタンスのデータベースの名前。mydb など。

  6. [Apply] を選択します。APEX 管理ウィンドウが表示されます。

  7. APEX admin ユーザーのパスワードを設定します。これを行うには、SQL*Plus を使用して DB インスタンスにマスターユーザーとして接続し、次のコマンドを実行します。

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

    master を自身のマスターユーザー名に置き換えます。apxchpwd.sql スクリプトによってプロンプトが表示されたら、新しい admin パスワードを入力します。

  8. ブラウザで APEX 管理ウィンドウに戻り、[Administration] を選択します。次に、[Application Express Internal Administration] を選択します。認証情報を求められたら、以下の情報を入力します。

    • User name - admin

    • Password - apxchpwd.sql スクリプトを使用して設定したパスワード。

    [Login] を選択し、その admin ユーザーの新しいパスワードを設定します。

これで、リスナーを使用する準備ができました。

APEX バージョンのアップグレード

重要

APEX をアップグレードする前に、DB インスタンスをバックアップします。詳細については、「シングル AZ DB インスタンスの DB スナップショットの作成」および「Oracle DB アップグレードのテスト」を参照してください。

APEX を DB インスタンスと共にアップグレードするには、以下を実行します。

  • DB インスタンスのアップグレードしたバージョン用に新規のオプショングループを作成します。

  • 新規のオプショングループにアップグレードしたバージョンの APEX と APEX-DEV を追加します。DB インスタンスが使用するそのほかのすべてのオプションを含めるようにします。詳細については、「オプショングループに関する考慮事項」を参照してください。

  • DB インスタンスをアップグレードするときに、アップグレードした DB インスタンスに新規のオプショングループを指定します。

APEX のバージョンをアップグレード後、以前のバージョンの APEX スキーマがデータベースに存在している場合があります。不要な場合には、アップグレード後に古い APEX スキーマをデータベースから削除できます。

APEX バージョンをアップグレードする場合で、以前の APEX バージョンで RESTful サービスが設定されていないときは、RESTful サービスを設定することをお勧めします。詳細については、「 Oracle APEX の RESTful サービスの設定」を参照してください。

場合によっては、DB インスタンスのメジャーバージョンアップグレードを行う際、ターゲットデータベースのバージョンと互換性のない APEX バージョンを使用していることが分かることがあります。このような場合は、DB インスタンスをアップグレードする前に、APEX のバージョンをアップグレードします。初期に APEX をアップグレードすると、DB インスタンスのアップグレードに要する時間を短縮できます。

注記

APEX をアップグレードしたら、アップグレードしたバージョンで使用するリスナーをインストールして設定します。手順については、「Oracle APEX リスナーの設定」を参照してください。

APEX オプションの削除

DB インスタンスから Amazon RDS APEX オプションを削除できます。APEX オプションを DB インスタンスから削除するには、次のいずれかを実行します。

  • 複数の DB インスタンスから APEX オプションを削除するには、それらが属しているオプショングループから APEX オプションを削除します。この変更はそのオプショングループを使用するすべての DB インスタンスに影響します。複数の DB インスタンスにアタッチされているオプショングループから APEX オプションを削除すると、すべての DB インスタンスが再起動される間、短時間の停止が発生します。

    詳細については、「オプショングループからオプションを削除する」を参照してください。

  • 1 つの DB インスタンスから APEX オプションを削除するには、DB インスタンスを変更し、APEX オプションを含まない別のオプショングループを指定します。デフォルト (空) のオプショングループや別のカスタムオプショングループを指定できます。APEX オプションを削除する場合、DB インスタンスを自動的に再起動している間に短い停止が発生します。

    詳細については、「Amazon RDS DB インスタンスを変更する」を参照してください。

DB インスタンスから APEX オプションを削除すると、APEX スキーマがデータベースから削除されます。