Oracle Application Expressは、Oracle Database 11gとともにデフォルトでインストールされます。この章では、Oracle Database 11g 以上でインストールされるOracle Application Expressのインストール後に必要な構成タスクについて説明します。
この章の内容は、新規インストールとアップグレード・インストールの両方に該当します。詳細は、「以前のリリースのOracle Application Expressからのアップグレード」を参照してください。
この章の内容は次のとおりです。
すでにOracle Application Expressを実行している場合は、次のURLにあるOracle Technology Network(OTN)の「Oracle Application Express」ページでOracle Application Expressのパッチ・セットのリリースまたは後続リリースについて確認します。
http://www.oracle.com/technetwork/developer-tools/apex/overview/index.html
Oracle Database 11gにアップグレードしても、Oracle Application Expressにパッチは適用されません。Oracle Technology Network(OTN)からのOracle Application Expressのダウンロードおよびインストールの詳細は、「Oracle Technology Networkからのダウンロード」を参照してください。
Oracle Application Expressをインストールする前に、次のステップを実行することをお薦めします。
Oracle Application Expressのすべてのインストール要件を確認して満たします。「Oracle Application Expressのインストール要件」を参照してください。
既存のすべてのOracle DatabaseインスタンスおよびOracle関連のプロセスを停止します。
通常の順、または優先度の高い順に、Oracle Application Expressスキーマをインストールするデータベースを除く、既存のすべてのOracle Databaseインスタンスを停止します。Oracle Real Application Clusters(Oracle RAC)システムでは、各ノードのすべてのインスタンスを停止します。
自動ストレージ管理(ASM)を実行中の場合は、Oracle Application Expressをインストールするデータベースを除く、ASMを使用するすべてのデータベースを停止してから、ASMインスタンスを停止します。
Oracle DatabaseおよびASMインスタンスを停止するには、Windowsの「サービス」ユーティリティを使用します。このユーティリティは、Windowsの「コントロール パネル」または「管理ツール」メニュー(「スタート」→「プログラム」)から使用できます。Oracle Databaseの名前は、OracleService
から始まります。Oracle ASMサービスは、OracleASMService+ASM
という名前です。また、ASMが使用するOracleCSService
サービスも停止します。サービスの名前を右クリックし、メニューから「停止」を選択します。
Oracle Databaseインストールをバックアップします。
Oracle Application Expressをインストールする前に、現行のOracle Databaseインストールのバックアップを作成することをお薦めします。バックアップには、Oracle Database Recovery Manager(Oracle Databaseインストールに含まれる)を使用できます。
参照: 『Oracle Databaseバックアップおよびリカバリ・アドバンスト・ユーザーズ・ガイド』 |
ターゲット・データベースが含まれるOracle Databaseインスタンスを起動します。
システムをバックアップした後で、ターゲットのOracle Databaseが含まれるOracleインスタンスを起動する必要があります。リスナー、Oracle HTTP Serverなど、他のプロセスは開始しないでください。ただし、リモート・インストールを実行している場合は、リモート・データベースのデータベース・リスナーが起動されていることを確認します。
Oracle Application Expressを実行するには、埋込みPL/SQLゲートウェイ、またはOracle HTTP Serverおよびmod_plsql
に対するアクセス権が必要です。詳細は、「HTTPサーバーの選択について」を参照してください。
このセクションでは、Oracle Application Expressおよび埋込みPL/SQLゲートウェイを実行する際に必要なインストール後の構成タスクについて説明します。
このセクションの内容は次のとおりです。
Oracle Application ExpressはOracle Database 11g 以上とともに自動的にインストールされます。Oracle Databaseのインストールの詳細は、ご使用のオペレーティング環境向けの『Oracle Databaseインストレーション・ガイド』および「インストール前の推奨タスク」を参照してください。
埋込みPL/SQLゲートウェイは、Oracle Database 11gとともにインストールされますが、Oracle Application Expressで使用する前に構成する必要があります。このためには、構成ファイルを実行し、ANONYMOUS
アカウントのロックを解除する必要があります。
注意: Oracle XML DB HTTP Serverおよび埋込みPL/SQLゲートウェイは、Oracle Database 11gより前のデータベースではサポートされていません。 |
このセクションの内容は次のとおりです。
新規インストールで構成スクリプトapxconf.sql
を実行し、埋込みPL/SQLゲートウェイを構成します。次に、ANONYMOUS
アカウントのロックを解除します。
注意: アップグレードの場合で、埋込みPL/SQLゲートウェイをすでに構成してあれば、このセクションをスキップして「Oracle Database 11gでのネットワーク・サービスの有効化」に進んでください。 |
apxconf.sql
構成スクリプトを実行するには、次のステップを実行します。
作業ディレクトリをORACLE_BASE\ORACLE_HOME
\apex
(またはOracleホームを示すために使用される表記規則)に変更します。
SQL*Plusを起動し、Oracle Application ExpressがインストールされているデータベースにSYS
として接続します。次に例を示します。
Windowsの場合:
SYSTEM_DRIVE:\ sqlplus /nolog SQL> CONNECT SYS as SYSDBA Enter password: SYS_password
UNIXおよびLinuxの場合:
$ sqlplus /nolog
SQL> CONNECT SYS as SYSDBA
Enter password: SYS_password
次の例に示すように、apxconf.sql
を実行します。
@apxconf
Application ExpressのAdminアカウントのパスワードの入力を求められたら入力します。
入力したパスワードを必ずメモします。このパスワードを使用してOracle Application Express管理サービスにログインします。
プロンプトが表示されたら、Oracle XML DB HTTPサーバーのポート番号を入力します。デフォルトのポート番号は8080です。
次の文を入力し、ANONYMOUSアカウントのロックを解除します。
ALTER USER ANONYMOUS ACCOUNT UNLOCK;
埋込みPL/SQLゲートウェイは、Oracle DatabaseのOracle XML DB HTTP Serverで実行されます。対応するポート番号を確認すると、Oracle XML DB HTTPサーバーが有効化されているかどうかを判断できます。
Oracle XML DB HTTP Serverを実行するポート番号を検証するには、次のステップを実行します。
SQL*Plusを起動し、Oracle Application Expressがインストールされているデータベースに、SYSDBA
ロールが指定されているSYS
として接続します。
Windowsの場合:
SYSTEM_DRIVE:\ sqlplus /nolog SQL> CONNECT SYS as SYSDBA Enter password: SYS_password
UNIXおよびLinuxの場合:
$ sqlplus /nolog
SQL> CONNECT SYS as SYSDBA
Enter password: SYS_password
次の文を入力し、ポート番号を確認します。
SELECT DBMS_XDB.GETHTTPPORT FROM DUAL;
ポート番号に0
が戻された場合、Oracle XML DB HTTP Serverは無効化されています。
有効化するには、「Oracle XML DB HTTP Serverの有効化」のステップを実行します。
埋込みPL/SQLゲートウェイは、Oracle DatabaseのOracle XML DB HTTP Serverで実行されます。
Oracle XML DB HTTP Serverを有効化するには、次のステップを実行します。
SQL*Plusを起動し、Oracle Application ExpressがインストールされているデータベースにSYSとして接続します。次に例を示します。
Windowsの場合は、次のようになります。
DRIVE_LETTER:\> sqlplus /nolog SQL> SQL> CONNECT SYS as SYSDBA Enter password: SYS_password
UNIXおよびLinuxの場合は、次のようになります。
$ sqlplus /nolog
SQL> SQL> CONNECT SYS as SYSDBA
Enter password: SYS_password
次の文を実行します。
EXEC DBMS_XDB.SETHTTPPORT(port);
COMMIT;
次に例を示します。
EXEC DBMS_XDB.SETHTTPPORT(8080); COMMIT;
注意: 1024未満のポート番号は、多くのオペレーティング・システムで特権プロセス用に予約されています。1024未満のポート(80など)でXML DB HTTPリスナーを有効化するには、次のドキュメントを参照してください。
|
埋込みPL/SQLゲートウェイは、Oracle DatabaseのOracle XML DB HTTP Serverで実行されます。Oracle XML DB HTTP Serverを無効化するには、次のステップを実行します。
SQL*Plusを起動し、Oracle Application ExpressがインストールされているデータベースにSYSとして接続します。次に例を示します。
Windowsの場合は、次のようになります。
DRIVE_LETTER:\> sqlplus /nolog SQL> SQL> CONNECT SYS as SYSDBA Enter password: SYS_password
UNIXおよびLinuxの場合は、次のようになります。
$ sqlplus /nolog
SQL> SQL> CONNECT SYS as SYSDBA
Enter password: SYS_password
次の文を実行します。
EXEC DBMS_XDB.SETHTTPPORT(0); COMMIT;
Oracle Database 11gリリース1(11.1)では、デフォルトで、ネットワーク・サービスと対話する機能は無効になっています。このため、Oracle Database 11gリリース1(11.1)でOracle Application Expressを実行している場合は、新しいDBMS_NETWORK_ACL_ADMIN
パッケージを使用して、APEX_030200
データベース・ユーザーにすべてのホストに対する接続権限を付与する必要があります。これらの権限を付与しないと、次の動作で問題が発生します。
Oracle Application Expressでアウトバウンド・メールを送信する。
ユーザーはAPEX_MAIL
パッケージからメソッドをコールできますが、アウトバンド・メールの送信時に問題が発生します。
Oracle Application ExpressでWebサービスを使用する。
PDF/レポートを印刷する。
オンライン・ヘルプのコンテンツ検索(検索リンクの使用)
このセクションの内容は次のとおりです。
ヒント: このセクションで示されている例を実行するには、データベースのcompatible初期化パラメータが11.1.0.0.0以上に設定されている必要があります。デフォルトでは、11gデータベースのパラメータは事前に適切に設定されていますが、以前のリリースから11gにアップグレードされたデータベースのパラメータは適切に設定されていない場合があります。データベース初期化パラメータの変更については、『Oracle Database管理者ガイド』の「Oracle Databaseの作成および構成」を参照してください。 |
次の例は、APEX_030200
データベース・ユーザーにすべてのホストに対する接続権限を付与する方法を示しています。この例では、Oracle Application Expressがインストールされているデータベースに、SYSDBA
ロールが指定されているSYS
として接続するとします。
DECLARE ACL_PATH VARCHAR2(4000); ACL_ID RAW(16); BEGIN -- Look for the ACL currently assigned to '*' and give APEX_030200 -- the "connect" privilege if APEX_030200 does not have the privilege yet. SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL; -- Before checking the privilege, ensure that the ACL is valid -- (for example, does not contain stale references to dropped users). -- If it does, the following exception will be raised: -- -- ORA-44416: Invalid ACL: Unresolved principal 'APEX_030200' -- ORA-06512: at "XDB.DBMS_XDBZ", line ... -- SELECT SYS_OP_R2O(extractValue(P.RES, '/Resource/XMLRef')) INTO ACL_ID FROM XDB.XDB$ACL A, PATH_VIEW P WHERE extractValue(P.RES, '/Resource/XMLRef') = REF(A) AND EQUALS_PATH(P.RES, ACL_PATH) = 1; DBMS_XDBZ.ValidateACL(ACL_ID); IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_030200', 'connect') IS NULL THEN DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH, 'APEX_030200', TRUE, 'connect'); END IF; EXCEPTION -- When no ACL has been assigned to '*'. WHEN NO_DATA_FOUND THEN DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml', 'ACL that lets power users to connect to everywhere', 'APEX_030200', TRUE, 'connect'); DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*'); END; / COMMIT;
次の例は、ローカル・ネットワーク・リソースへのアクセス権について、より少ない権限を付与する方法を示しています。この例では、Oracle Application Expressオンライン・ヘルプを索引付けできます。また、対象サーバーもローカル・ホスト上に存在する場合は、電子メールおよびPDFへの出力を行うことができる場合があります。
DECLARE ACL_PATH VARCHAR2(4000); ACL_ID RAW(16); BEGIN -- Look for the ACL currently assigned to 'localhost' and give APEX_030200 -- the "connect" privilege if APEX_030200 does not have the privilege yet. SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS WHERE HOST = 'localhost' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL; -- Before checking the privilege, ensure that the ACL is valid -- (for example, does not contain stale references to dropped users). -- If it does, the following exception will be raised: -- -- ORA-44416: Invalid ACL: Unresolved principal 'APEX_030200' -- ORA-06512: at "XDB.DBMS_XDBZ", line ... -- SELECT SYS_OP_R2O(extractValue(P.RES, '/Resource/XMLRef')) INTO ACL_ID FROM XDB.XDB$ACL A, PATH_VIEW P WHERE extractValue(P.RES, '/Resource/XMLRef') = REF(A) AND EQUALS_PATH(P.RES, ACL_PATH) = 1; DBMS_XDBZ.ValidateACL(ACL_ID); IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_030200', 'connect') IS NULL THEN DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH, 'APEX_030200', TRUE, 'connect'); END IF; EXCEPTION -- When no ACL has been assigned to 'localhost'. WHEN NO_DATA_FOUND THEN DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('local-access-users.xml', 'ACL that lets power users to connect to everywhere', 'APEX_030200', TRUE, 'connect'); DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('local-access-users.xml','localhost'); END; / COMMIT;
前述のスクリプトを実行した後にORA-44416: 無効なACL
のエラーが表示された場合は、次の問合せを使用して、無効なACLを特定します。
REM Show the dangling references to dropped users in the ACL that is assigned REM to '*'. SELECT ACL, PRINCIPAL FROM DBA_NETWORK_ACLS NACL, XDS_ACE ACE WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL AND NACL.ACLID = ACE.ACLID AND NOT EXISTS (SELECT NULL FROM ALL_USERS WHERE USERNAME = PRINCIPAL);
次に、次のコードを実行してACLを修正します。
DECLARE ACL_ID RAW(16); CNT NUMBER; BEGIN -- Look for the object ID of the ACL currently assigned to '*' SELECT ACLID INTO ACL_ID FROM DBA_NETWORK_ACLS WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL; -- If just some users referenced in the ACL are invalid, remove just those -- users in the ACL. Otherwise, drop the ACL completely. SELECT COUNT(PRINCIPAL) INTO CNT FROM XDS_ACE WHERE ACLID = ACL_ID AND EXISTS (SELECT NULL FROM ALL_USERS WHERE USERNAME = PRINCIPAL); IF (CNT > 0) THEN FOR R IN (SELECT PRINCIPAL FROM XDS_ACE WHERE ACLID = ACL_ID AND NOT EXISTS (SELECT NULL FROM ALL_USERS WHERE USERNAME = PRINCIPAL)) LOOP UPDATE XDB.XDB$ACL SET OBJECT_VALUE = DELETEXML(OBJECT_VALUE, '/ACL/ACE[PRINCIPAL="'||R.PRINCIPAL||'"]') WHERE OBJECT_ID = ACL_ID; END LOOP; ELSE DELETE FROM XDB.XDB$ACL WHERE OBJECT_ID = ACL_ID; END IF; END; / REM commit the changes. COMMIT;
ACLの修正後、このセクションの最初のスクリプトを実行してAPEX_030200
ユーザーにACLを適用する必要があります。「接続権限の付与」を参照してください。
Oracle Application Expressオンライン・ヘルプを検索する機能がOracle TextおよびURLデータ・ストアによって実現します。Oracle TextのURLデータ・ストアをDatabase 11gリリース2以上で使用する場合のデフォルトの動作と権限に変更があります。
Oracle Database 11gリリース2でOracle Application Expressのオンライン・ヘルプを検索しようとして、次のエラーが発生した場合、Oracle Text URLデータ・ストアを使用するための権限がデータベース・ユーザーAPEX_030200
に付与されていません。
ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine ORA-20000: Oracle Text error: DRG-10758: index owner does not have the privilege to use file or URL data store
Oracle Application Expressでオンライン・ヘルプの索引付けを有効にするには、Oracle Text URLデータ・ストアを使用するための権限をAPEX_030200
データベース・ユーザーに付与する必要があります。これを行うには、この特定の権限をデータベース・ロールに割り当ててから、そのロールをAPEX_030200
データベース・ユーザーに付与します。
Oracle TextのURLデータ・ストアを使用するための権限がデータベース・ロールに付与されているかどうかを確認するには、次のステップを実行します。
SQL*Plusを起動し、Oracle Application Expressがインストールされているデータベースに、SYSDBA
ロールが指定されているSYS
として接続します。次に例を示します。
Windowsの場合:
SYSTEM_DRIVE:\ sqlplus /nolog SQL> CONNECT SYS as SYSDBA Enter password: SYS_password
UNIXおよびLinuxの場合:
$ sqlplus /nolog
SQL> CONNECT SYS as SYSDBA
Enter password: SYS_password
次のコマンドを実行します。
SELECT par_value FROM ctxsys.ctx_parameters WHERE par_name = 'FILE_ACCESS_ROLE';
NULL
、またはOracle TextのURLデータ・ストアを使用する権限が付与されているデータベース・ロールが戻されます。
ステップ2で値が戻らなかった場合は、次の例に示すように新しいデータベース・ロールを作成します。
CREATE ROLE APEX_URL_DATASTORE_ROLE;
次の文を使用して、このロールをデータベース・ユーザーAPEX_030200
に付与します。
GRANT APEX_URL_DATASTORE_ROLE to APEX_030200;
ステップ2で値が戻った場合は、例のAPEX_URL_DATASTORE_ROLE
のかわりに、そのデータベース・ロール名を使用します。
最後に、ステップ2で値が戻らなかった場合は、Oracle Text APIで次の文を使用して、新しく作成されたデータベース・ロールに権限を付与します。
EXEC ctxsys.ctx_adm.set_parameter('file_access_role', 'APEX_URL_DATASTORE_ROLE');
HTTPリクエストで、パスワードやその他の機密データがクリア・テキストで送信されることのないように、Secure Sockets Layer(SSL)を構成して使用することをお薦めします。SSLを使用しないと、パスワードが公開され、セキュリティが損なわれる可能性があります。
SSLは、業界標準のプロトコルです。RSA公開鍵暗号化と対称鍵暗号化を組み合せて使用することにより、認証、暗号化およびデータの整合性が提供されます。
Oracle Application Expressのインタフェースは、ドイツ語、スペイン語、フランス語、イタリア語、日本語、韓国語、ポルトガル語(ブラジル)、簡体字中国語および繁体字中国語に変換できます。Oracle Application Expressの単一インスタンスは、これらの言語変換されたバージョンを1つ以上実装してインストールできます。実行時に、各ユーザーのWebブラウザの言語設定によって、特定の言語バージョンが使用されます。
言語変換されたバージョンのOracle Application Expressは、その特定言語をサポートするキャラクタ・セットが実装されたデータベースにロードする必要があります。言語変換されたバージョンのOracle Application Expressを、その言語の文字コードをサポートしないデータベースにインストールすると、インストールが正常に実行されなかったり、言語変換されたOracle Application Expressインスタンスが実行時に破損しているように見える場合があります。データベース・キャラクタ・セットAL32UTF8
は、言語変換されたすべてのバージョンのOracle Application Expressをサポートします。
言語変換されたバージョンのOracle Application Expressを手動でインストールするには、SQL*Plusを使用します。インストール・ファイルはAL32UTF8
にエンコードされます。
注意: 言語変換されたバージョンのOracle Application Expressをインストールするには、ターゲット・データベースのキャラクタ・セットにかかわらず、SQL*Plusを起動する前に環境変数NLS_LANG のキャラクタ・セット値をAL32UTF8 に設定する必要があります。 |
言語変換されたバージョンのOracle Application Expressのロードに有効なNLS_LANG
設定の例を次に示します。
American_America.AL32UTF8 Japanese_Japan.AL32UTF8
初めてインストールを行う場合も以前のリリースからアップグレードする場合も、言語変換されたバージョンのOracle Application Expressを実行するには、load_
lang
.sql
スクリプトを実行する必要があります。
インストール・スクリプトは、配布を解凍したapex/builder
のサブディレクトリに格納されます。これらのサブディレクトリは、言語コードで識別されます。たとえば、ドイツ語バージョンはapex/builder/de
、日本語バージョンはapex/builder/ja
に格納されます。各ディレクトリには、言語コード(たとえば、load_de.sql
やload_ja.sql
)で識別される、言語固有のロード・スクリプトが格納されます。
言語変換されたバージョンのOracle Application Expressをインストールするには、次のステップを実行します。
環境変数NLS_LANG
をキャラクタ・セットAL32UTF8
に設定します。次に例を示します。
BourneシェルまたはKornシェルの場合:
NLS_LANG=American_America.AL32UTF8 export NLS_LANG
Cシェルの場合:
setenv NLS_LANG American_America.AL32UTF8
Windowsベースのシステムの場合:
set NLS_LANG=American_America.AL32UTF8
SQL*Plusを起動し、Oracle Application Expressがインストールされているデータベースに、SYSDBA
ロールが指定されているSYS
として接続します。次に例を示します。
Windowsの場合:
SYSTEM_DRIVE:\ sqlplus /nolog SQL> CONNECT SYS as SYSDBA Enter password: SYS_password
UNIXおよびLinuxの場合:
$ sqlplus /nolog
SQL> CONNECT SYS as SYSDBA
Enter password: SYS_password
次の文を実行します。
ALTER SESSION SET CURRENT_SCHEMA = APEX_030200;
該当する言語固有のスクリプトを実行します。次に例を示します。
@load_lang.sql
lang
は特定の言語です。たとえば、ドイツ語の場合はload_de.sql
、日本語の場合はload_ja.sql
となります。
JOB_QUEUE_PROCESSES
には、同時に実行するジョブの最大数を指定します。Oracle Application Expressリリース3.2では、トランザクションのサポートおよびSQLスクリプトでジョブが必要です。JOB_QUEUE_PROCESSES
が有効でなく、正常に動作していない場合、スクリプトを正常に実行することはできません。
このセクションの内容は次のとおりです。
JOB_QUEUE_PROCESSES
の数を表示するには、3つの方法があります。
インストール・ログ・ファイル
Oracle Application Expressの「Application Expressのバージョン情報」ページ
SQL*Plus
Oracle Application Expressリリース3.2をインストールした後、またはOracle Application Expressをリリース3.2にアップグレードした後、JOB_QUEUE_PROCESSES
の数をインストール・ログ・ファイルに表示できます。「インストール・セッションのログの確認」を参照してください。
「Application Expressのバージョン情報」ページにJOB_QUEUE_PROCESSES
の数を表示することもできます。
「Application Expressのバージョン情報」ページを表示するには、次のステップを実行します。
Oracle Application Expressにログインします。詳細は、「Oracle Application Express作業領域へのログイン」を参照してください。
「管理」リストで、「Application Expressのバージョン情報」をクリックします。
ページの下部に、現在のJOB_QUEUE_PROCESSES
の数が表示されます。
SQL*Plusで次のSQL文を実行して、JOB_QUEUE_PROCESSES
の数を変更できます。
JOB_QUEUE_PROCESSES
の数を更新するには、次のステップを実行します。
SQL*Plusを起動し、Oracle Application Expressがインストールされているデータベースに、SYSDBA
ロールが指定されているSYS
として接続します。
Windowsの場合:
SYSTEM_DRIVE:\ sqlplus /nolog SQL> CONNECT SYS as SYSDBA Enter password: SYS_password
UNIXおよびLinuxの場合:
$ sqlplus /nolog
SQL> CONNECT SYS as SYSDBA
Enter password: SYS_password
SQL*Plusで次のSQL文を実行します。
ALTER SYSTEM SET JOB_QUEUE_PROCESSES = <number>
たとえば、ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 20
を実行すると、JOB_QUEUE_PROCESSES
は20に設定されます。
埋込みPL/SQLゲートウェイでは、Oracle Databaseの共有サーバー・アーキテクチャを使用します。埋込みPL/SQLゲートウェイの使用時に良好なパフォーマンスを実現するには、データベース初期化パラメータSHARED_SERVERS
が適切な(0
でも1
でもない)値に設定されていることを確認します。同時ユーザーが少数の場合は、SHARED_SERVERS
の値に5
を使用することをお薦めします。
次に例を示します。
SQL*Plusを起動し、Oracle Application Expressがインストールされているデータベースに、SYSDBA
ロールが指定されているSYS
として接続します。次に例を示します。
Windowsの場合:
SYSTEM_DRIVE:\ sqlplus /nolog SQL> CONNECT SYS as SYSDBA Enter password: SYS_password
UNIXおよびLinuxの場合:
$ sqlplus /nolog
SQL> CONNECT SYS as SYSDBA
Enter password: SYS_password
次の文を実行します。
ALTER SYSTEM SET SHARED_SERVERS = 5 SCOPE=BOTH;
Webブラウザを使用して作業領域にログインし、Oracle Application Expressのホームページにアクセスします。使用するWebブラウザでJavaScript、HTML 4.0およびCSS 1.0規格がサポートされている必要があります。「ブラウザの要件」を参照してください。
作業領域は、複数のユーザーが、各自のオブジェクト、データおよびアプリケーションをそれぞれに保持しながら、同じOracle Application Expressインストール内で作業できる、仮想プライベート・データベースです。各作業領域には、一意のIDと名前があります。
Oracle Application Express管理者は、Oracle Application Express管理サービス内に作業領域を手動で作成するか、ユーザーにリクエストを送信してもらうことができます。Oracle Application Express管理サービスは、Oracle Application Expressインスタンス全体を管理するための独立したアプリケーションです。詳細は、『Oracle Application Express管理ガイド』の「作業領域の作成」および「作業領域リクエストの管理」を参照してください。
参照: Oracle Application Expressを初めて使用する場合は、『Oracle Database Application Express 2日で開発者ガイド』を参照してください。 |
このセクションの内容は次のとおりです。
Oracle Application Express作業領域を手動で作成するには、次のステップを実行します。
Oracle Application Express管理サービスにログインします。Oracle Application Express管理サービスは、Oracle Application Expressインスタンス全体を管理するための独立したアプリケーションです。ログインするには、インストール・プロセス中に作成または再設定したADMIN
アカウントおよびパスワードを使用します。
Webブラウザで、Oracle Application Express管理サービス・アプリケーションにナビゲートします。
設定に埋込みPL/SQLゲートウェイを使用する場合は、次へ移動します。
http://hostname:port/apex/apex_admin
各要素の意味は次のとおりです。
hostname
は、Oracle XML DB HTTPサーバーがインストールされているシステムの名前です。
port
は、Oracle XML DB HTTPサーバーに割り当てられているポート番号です。デフォルトのインストールの場合、この番号は8080です。
apex
は、構成ファイルで定義されているデータベース・アクセス記述子(DAD)です。
「ログイン」ページで、次の操作を行います。
「ユーザー名」に、admin
と入力します。
「パスワード」に、Oracle Application Expressのインストール時に指定したOracle Application Express管理者アカウントのパスワードを入力します。
「ログイン」をクリックします。
参照: 詳細は、『Oracle Application Express管理ガイド』の「Oracle Application Express管理サービスへのログイン」を参照してください。 |
次に、作業領域を作成します。
「作業領域の管理」をクリックします。
「作業領域の管理」で、「作業領域の作成」をクリックします。
「作業領域の作成」ウィザードが表示されます。
「作業領域の指定」に、作業領域の名前と説明を入力して、「次へ」をクリックします。
「スキーマの指定」で、Oracle Formsアプリケーションのスキーマを選択します。
「既存のスキーマを再利用」で、「はい」を選択します。
リストからスキーマを選択します。
「次へ」をクリックします。
「管理者の指定」に、作業領域管理者の情報を入力して、「次へ」をクリックします。
選択した内容を確認し、「作成」をクリックします。
Oracle Application Expressユーザー・アカウントを作成するには、次のステップを実行します。
前述のセクションで説明したように、Oracle Application Express管理サービスにログインします。詳細は、『Oracle Application Express管理ガイド』の「Oracle Application Express管理サービスへのログイン」を参照してください。
「作業領域の管理」をクリックします。
「作業領域の管理」で、「開発者とユーザーの管理」をクリックします。
「開発者とユーザーの管理」ページが表示されます。
「作成」をクリックします。
「ユーザーの作成/編集」ページが表示されます。
「ユーザー属性」で、適切な情報を入力します。アスタリスクが付いたフィールドは必須です。
ヒント: 特定の属性の詳細は、アイテム・ラベルをクリックしてください。ヘルプが利用できる場合は、アイテム・ラベル上にカーソルを重ねると、アイテム・ラベルが赤色に変わり、カーソルが矢印と疑問符に変わります。 |
「パスワード」に、このアカウントの大/小文字を区別したパスワードを入力します。
組織でパスワード・ポリシーを設定している場合は、パスワードが要件を満たすことを確認してください。
「開発者権限」で、適切な権限を選択します。
開発者ユーザー: 開発者または作業領域管理者としてこのユーザーを追加する場合は、「はい」を選択します。エンド・ユーザーの場合は、「いいえ」を選択します。
開発者は、アプリケーションおよびデータベース・オブジェクトの作成および変更、開発者アクティビティ、セッション・ステート、作業領域アクティビティおよびスキーマ・レポートの表示が可能です。
作業領域管理者ユーザー: 作業領域管理者としてこのユーザーを追加する場合は、「はい」を選択します。開発者またはエンド・ユーザーの場合は、「いいえ」を選択します。
作業領域管理者は、開発者権限を持っていることに加え、ユーザー・アカウントの作成および編集、グループの管理、同じ作業領域内のユーザーのパスワードの変更および開発サービスの管理が可能です。
アカウントの可用性: ユーザーがこのアカウントにログインできるようにするには、「ロック解除済」を選択します。
初回使用時にパスワードの変更が必要: ユーザーが現在の一時パスワードでログインした直後にパスワードを変更する必要がある場合は、「はい」を選択します。それ以外の場合は、「いいえ」を選択します。
「ユーザーの作成」または「作成後、別のものの作成」をクリックします。
作業領域を作成した後、ログイン資格証明(作業領域名、ユーザー名およびパスワード)を使用してログインします。
参照: Oracle Application Express管理ガイドの「作業領域の作成」および「作業領域リクエストの管理」を参照してください。 |
作業領域にログインするには、次のステップを実行します。
Webブラウザで、Oracle Application Expressの「ログイン」ページにナビゲートします。
設定に埋込みPL/SQLゲートウェイを使用する場合は、次へ移動します。
http://hostname:port/apex
各要素の意味は次のとおりです。
hostname
は、Oracle XML DB HTTPサーバーがインストールされているシステムの名前です。
port
は、Oracle XML DB HTTPサーバーに割り当てられているポート番号です。デフォルトのインストールの場合、この番号は8080です。
apex
は、構成ファイルで定義されているデータベース・アクセス記述子(DAD)です。
以前のリリースからアップグレードしたユーザーや、カスタム構成があるユーザーの場合は、この値はhtmldb
かその他の値にする必要があります。Oracle Application Express管理者にDADを確認します。
「ログイン」ページが表示されます。
「ログイン」で、次の項目を入力します。
「作業領域」フィールド: 作業領域の名前を入力します。
「ユーザー名」フィールド: ユーザー名を入力します。
「パスワード」フィールド: 大/小文字を区別したパスワードを入力します。
「ログイン」をクリックします。
設定によっては、初めてログインするときにパスワードの変更を要求される場合があります。
このセクションでは、Oracle Database 11gまたはOracle Application Server 10gで配布されたOracle HTTP Serverおよびmod_plsql
を構成する方法について説明します。
このセクションの内容は次のとおりです。
Oracle HTTP Serverリリース9.0.3を実行している場合、次のステップは該当しません。詳細は、「Oracle9i リリース2で配布されたOracle HTTP Serverの構成」を参照してください。
注意: このセクションでは、Oracleホーム・ディレクトリ(ORACLE_HTTPSERVER_HOME )にOracle HTTP Serverがインストールされていると想定します。 |
Oracle Application ExpressはOracle Database 11g 以上とともに自動的にインストールされます。Oracle Databaseのインストールの詳細は、ご使用のオペレーティング環境向けの『Oracle Databaseインストレーション・ガイド』および「インストール前の推奨タスク」を参照してください。
次の場合は、後述するインストール後の処理を実行する必要があります。
Oracle Database 11g 以上とともにインストールされるOracle Application Expressを使用している。
以前のリリースからのアップグレードでない。今回がOracle Application Expressの新規インストールである。
Oracle Database 11gで配布されたOracle HTTP ServerまたはOracle Application Server 10gを実行している。
Oracle HTTP ServerがOracleホームにインストールされている。
このセクションの内容は次のとおりです。
Oracle HTTP Serverリリース9.0.3を実行している場合、次のステップは該当しません。詳細は、「Oracle9i リリース2で配布されたOracle HTTP Serverの構成」を参照してください。
注意: このセクションでは、Oracleホーム・ディレクトリ(ORACLE_HTTPSERVER_HOME )にOracle HTTP Serverがインストールされていると想定します。 |
最初に、Oracle Application ExpressのADMIN
アカウントのパスワードを変更します。
ヒント: 以前のリリースのOracle Application Expressからアップグレードする場合、このステップは不要です。 |
ADMIN
アカウントのパスワードを変更するには、次のステップを実行します。
作業ディレクトリをORACLE_BASE\ORACLE_HOME
\apex
(またはOracleホームを示すために使用される表記規則)に変更します。
SQL*Plusを起動し、Oracle Application ExpressがインストールされているデータベースにSYSとして接続します。次に例を示します。
Windowsの場合:
SYSTEM_DRIVE:\ sqlplus /nolog SQL> CONNECT SYS as SYSDBA Enter password: SYS_password
UNIXおよびLinuxの場合:
$ sqlplus /nolog
SQL> CONNECT SYS as SYSDBA
Enter password: SYS_password
apxchpwd.sql
を実行します。次に例を示します。
@apxchpwd.sql
ADMINアカウントのパスワードの入力を求められたら入力します。
新規インストールでOracle HTTP Server for Oracle Application Expressを構成する場合、データベース・ユーザーAPEX_PUBLIC_USER
はロック解除されたアカウントである必要があります。データベース・ユーザーAPEX_PUBLIC_USER
のアカウントをロック解除するには、次のステップを実行します。
SQL*Plusを起動し、Oracle Application ExpressがインストールされているデータベースにSYS
として接続します。次に例を示します。
Windowsの場合:
SYSTEM_DRIVE:\ sqlplus /nolog SQL> CONNECT SYS as SYSDBA Enter password: SYS_password
UNIXおよびLinuxの場合:
$ sqlplus /nolog
SQL> CONNECT SYS as SYSDBA
Enter password: SYS_password
次の文を実行します。
ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK
DAD
ファイルにパスワードを指定するには、データベース・ユーザーAPEX_PUBLIC_USER
のパスワードを変更する必要があります。次のステップを実行してAPEX_PUBLIC_USER
データベース・ユーザーのパスワードを変更してください。
SQL*Plusを起動し、Oracle Application ExpressがインストールされているデータベースにSYS
として接続します。次に例を示します。
Windowsの場合:
SYSTEM_DRIVE:\ sqlplus /nolog SQL> CONNECT SYS as SYSDBA Enter password: SYS_password
UNIXおよびLinuxの場合:
$ sqlplus /nolog
SQL> CONNECT SYS as SYSDBA
Enter password: SYS_password
次の文を実行します。
SQL> PASSWORD APEX_PUBLIC_USER Changing password for APEX_PUBLIC_USER New password: password Retype new password: password
Oracle Database 11gのデフォルト・プロファイルでは、パラメータPASSWORD_LIFE_TIME
は180に設定されています。Oracle Database 11gおよびOracle Application Expressを使用している場合、これによりAPEX_PUBLIC_USER
のパスワードは180日間で期限切れになります。このため、パスワードを変更するまで、Oracle Application Expressインスタンスが使用できなくなります。
この動作を回避するには、PASSWORD_LIFE_TIME
パラメータが無制限に設定されている別のプロファイルを作成し、APEX_PUBLIC_USER
アカウントを変更して、新しいプロファイルを割り当てます。
参照: プロファイルの作成およびデータベース・ユーザーへの割当ての詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。 |
新規インストールをロードしているか、以前のリリースをアップグレードしているかにかかわらず、トップ・レベルのapex\images
ディレクトリからOracle HTTP Server用のOracleホームを含むファイル・システム上の場所に、images
ディレクトリをコピーする必要があります。
このセクションの内容は次のとおりです。
アップグレード中に、既存のimagesディレクトリを上書きする必要があります。以前のバージョンに戻すことができるように、アップグレードの開始前に、Oracle Application Express用の既存のimages
ディレクトリのコピーを作成して、imagesのリリース番号(images_3_1
など)を示しておくことをお薦めします。
ファイル・システム上でimages
ディレクトリを特定するには、次のファイルでテキスト別名/i/
を確認します。
Oracle9iリリース2で配布されたOracle HTTP Serverの場合: httpd.conf
ファイルを確認します。
Oracle Application Server 10gの場合: marvel.conf
またはdads.conf
ファイルを確認します。
Oracle Database 11gで配布されたOracle HTTP Serverの場合: marvel.conf
またはdads.conf
ファイルを確認します。
imagesディレクトリのパスを特定したら、既存のimagesディレクトリをバックアップの場所にコピーします。これによって、必要に応じて、以前のリリースに戻すことができます。
既存のimagesディレクトリをコピーした後、次のコマンド構文を使用してOracle Databaseホームから既存のimagesディレクトリのパスにapex\images
ディレクトリをコピーし、既存のimagesを上書きします。
Oracle Application Server 10gの場合:
Windowsの場合:
xcopy /E /I ORACLE_HOME\apex\images ORACLE_HTTPSERVER_HOME\Apache\images
UNIXおよびLinuxの場合:
cp -rf $ORACLE_HOME/apex/images ORACLE_HTTPSERVER_HOME/Apache
Oracle Database 11gで配布されたOracle HTTP Serverの場合:
Windowsの場合:
xcopy /E /I ORACLE_HOME\apex\images ORACLE_HTTPSERVER_HOME\ohs\images
UNIXおよびLinuxの場合:
cp -rf $ORACLE_HOME/apex/images ORACLE_HTTPSERVER_HOME/ohs
前述の構文例では、次のとおりです。
ORACLE_HOME
は、Oracle DatabaseのOracleホームを示しています。
ORACLE_HTTPSERVER_HOME
は、既存のOracle Application ServerまたはOracle HTTP ServerのOracleホームを示しています。
インストール後、ディレクトリapex/images
をコピーします。
images
ディレクトリは、Windowsエクスプローラを使用するか、またはコマンド・プロンプトから次のようなコマンドを実行してコピーできます。
DRIVE_LETTER:\> xcopy /E /I ORACLE_HOME\apex\images ORACLE_HTTPSERVER_HOME\ohs\images
前述の構文例では、次のとおりです。
ORACLE_HOME
は、Oracle Database 11g のOracleホームを示しています。
ORACLE_HTTPSERVER_HOME
は、既存のOracle Application ServerまたはOracle HTTP ServerのOracleホームを示しています。
次の場合は、後述するインストール後の処理を実行する必要があります。
Oracle Database 11gで配布されたOracle HTTP ServerまたはOracle Application Server 10gを実行している。
Oracle HTTP ServerがOracleホームにインストールされている。
Oracle HTTP Serverリリース9.0.3を実行している場合、次のステップは該当しません。詳細は、「Oracle9i リリース2で配布されたOracle HTTP Serverの構成」を参照してください。
注意: このマニュアルでは、ORACLE_HTTPSERVER_HOME にOracle HTTP Serverがインストールされていると想定します。 |
このセクションの内容は次のとおりです。
Oracle Application Expressを新しくインストールする場合は、dads.conf
ファイルを編集する必要があります。dads.conf
ファイルには、Oracle Application ExpressにアクセスするためのDAD情報が保存されています。
dads.conf
ファイルを編集するには、次のステップを実行します。
テキスト・エディタを使用してdads.conf
ファイルを開きます。
Oracle Application Server 10gの場合:
Windowsの場合:
ORACLE_HTTPSERVER_HOME\Apache\modplsql\conf\dads.conf
UNIXおよびLinuxの場合:
ORACLE_HTTPSERVER_HOME/Apache/modplsql/conf/dads.conf
Oracle Database 11gで配布されたOracle HTTP Serverの場合:
Windowsの場合:
ORACLE_HTTPSERVER_HOME\ohs\modplsql\conf\dads.conf
UNIXおよびLinuxの場合:
ORACLE_HTTPSERVER_HOME/ohs/modplsql/conf/dads.conf
dads.conf
ファイルで、ORACLE_HTTPSERVER_HOME
、host
、port
、service_name
およびapex_public_user_password
は、ご使用の環境に適した値に置き換えます。apex_public_user_password
は、「APEX_PUBLIC_USERデータベース・ユーザーのパスワードの変更」で変更したパスワードです。
ここで示すパスは、単なる例です。dads.confファイルのパスは、「imagesディレクトリのコピー」に示されているファイル・システム・パスを参照している必要があります。
Alias /i/ "ORACLE_HTTPSERVER_HOME/Apache/images/" AddType text/xml xbl AddType text/x-component htc <Location /pls/apex> Order deny,allow PlsqlDocumentPath docs AllowOverride None PlsqlDocumentProcedure wwv_flow_file_mgr.process_download PlsqlDatabaseConnectString host:port:service_name ServiceNameFormat PlsqlNLSLanguage AMERICAN_AMERICA.AL32UTF8 PlsqlAuthenticationMode Basic SetHandler pls_handler PlsqlDocumentTablename wwv_flow_file_objects$ PlsqlDatabaseUsername APEX_PUBLIC_USER PlsqlDefaultPage apex PlsqlDatabasePassword apex_public_user_password PlsqlRequestValidationFunction wwv_flow_epg_include_modules.authorize Allow from all </Location>
PlsqlNLSLanguage
を含む行を検索します。
PlsqlNLSLanguage
設定で、DADの言語設定を判断します。データベース・キャラクタ・セットがAL32UTF8
であるかどうかにかかわらず、PlsqlNLSLanguage
値のキャラクタ・セット部分は、AL32UTF8
に設定されている必要があります。次に例を示します。
... PlsqlNLSLanguage AMERICAN_AMERICA.AL32UTF8 ...
変更を保存して、dads.conf
ファイルを閉じます。
Oracle HTTP Serverを停止して再起動するには、次の構文を使用してコマンドを入力します。ここでORACLE_BASE
はOracleベース・ディレクトリへのパスです。
ORACLE_BASE\ORACLE_HTTPSERVER_HOME\opmn\bin\opmnctl stopproc ias-component=HTTP_Server ORACLE_BASE\ORACLE_HTTPSERVER_HOME\opmn\bin\opmnctl startproc ias-component=HTTP_Server
Oracle Database 11gリリース1(11.1)では、デフォルトで、ネットワーク・サービスと対話する機能は無効になっています。このため、Oracle Database 11gリリース1(11.1)でOracle Application Expressを実行している場合は、新しいDBMS_NETWORK_ACL_ADMIN
パッケージを使用して、APEX_030200
データベース・ユーザーにすべてのホストに対する接続権限を付与する必要があります。これらの権限を付与しないと、次の動作で問題が発生します。
Oracle Application Expressでアウトバウンド・メールを送信する。
ユーザーはAPEX_MAIL
パッケージからメソッドをコールできますが、アウトバンド・メールの送信時に問題が発生します。
Oracle Application ExpressでWebサービスを使用する。
PDF/レポートを印刷する。
オンライン・ヘルプのコンテンツ検索(検索リンクの使用)
このセクションの内容は次のとおりです。
ヒント: このセクションで示されている例を実行するには、データベースのcompatible初期化パラメータが11.1.0.0.0以上に設定されている必要があります。デフォルトでは、11gデータベースのパラメータは事前に適切に設定されていますが、以前のリリースから11gにアップグレードされたデータベースのパラメータは適切に設定されていない場合があります。データベース初期化パラメータの変更については、『Oracle Database管理者ガイド』の「Oracle Databaseの作成および構成」を参照してください。 |
次の例は、APEX_030200
データベース・ユーザーにすべてのホストに対する接続権限を付与する方法を示しています。この例では、Oracle Application Expressがインストールされているデータベースに、SYSDBA
ロールが指定されているSYS
として接続するとします。
DECLARE ACL_PATH VARCHAR2(4000); ACL_ID RAW(16); BEGIN -- Look for the ACL currently assigned to '*' and give APEX_030200 -- the "connect" privilege if APEX_030200 does not have the privilege yet. SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL; -- Before checking the privilege, ensure that the ACL is valid -- (for example, does not contain stale references to dropped users). -- If it does, the following exception will be raised: -- -- ORA-44416: Invalid ACL: Unresolved principal 'APEX_030200' -- ORA-06512: at "XDB.DBMS_XDBZ", line ... -- SELECT SYS_OP_R2O(extractValue(P.RES, '/Resource/XMLRef')) INTO ACL_ID FROM XDB.XDB$ACL A, PATH_VIEW P WHERE extractValue(P.RES, '/Resource/XMLRef') = REF(A) AND EQUALS_PATH(P.RES, ACL_PATH) = 1; DBMS_XDBZ.ValidateACL(ACL_ID); IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_030200', 'connect') IS NULL THEN DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH, 'APEX_030200', TRUE, 'connect'); END IF; EXCEPTION -- When no ACL has been assigned to '*'. WHEN NO_DATA_FOUND THEN DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml', 'ACL that lets power users to connect to everywhere', 'APEX_030200', TRUE, 'connect'); DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*'); END; / COMMIT;
次の例は、ローカル・ネットワーク・リソースへのアクセス権について、より少ない権限を付与する方法を示しています。この例では、Oracle Application Expressオンライン・ヘルプを索引付けできます。また、対象サーバーもローカル・ホスト上に存在する場合は、電子メールおよびPDFへの出力を行うことができる場合があります。
DECLARE ACL_PATH VARCHAR2(4000); ACL_ID RAW(16); BEGIN -- Look for the ACL currently assigned to 'localhost' and give APEX_030200 -- the "connect" privilege if APEX_030200 does not have the privilege yet. SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS WHERE HOST = 'localhost' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL; -- Before checking the privilege, ensure that the ACL is valid -- (for example, does not contain stale references to dropped users). -- If it does, the following exception will be raised: -- -- ORA-44416: Invalid ACL: Unresolved principal 'APEX_030200' -- ORA-06512: at "XDB.DBMS_XDBZ", line ... -- SELECT SYS_OP_R2O(extractValue(P.RES, '/Resource/XMLRef')) INTO ACL_ID FROM XDB.XDB$ACL A, PATH_VIEW P WHERE extractValue(P.RES, '/Resource/XMLRef') = REF(A) AND EQUALS_PATH(P.RES, ACL_PATH) = 1; DBMS_XDBZ.ValidateACL(ACL_ID); IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_030200', 'connect') IS NULL THEN DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH, 'APEX_030200', TRUE, 'connect'); END IF; EXCEPTION -- When no ACL has been assigned to 'localhost'. WHEN NO_DATA_FOUND THEN DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('local-access-users.xml', 'ACL that lets power users to connect to everywhere', 'APEX_030200', TRUE, 'connect'); DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('local-access-users.xml','localhost'); END; / COMMIT;
前述のスクリプトを実行した後にORA-44416: 無効なACL
のエラーが表示された場合は、次の問合せを使用して、無効なACLを特定します。
REM Show the dangling references to dropped users in the ACL that is assigned REM to '*'. SELECT ACL, PRINCIPAL FROM DBA_NETWORK_ACLS NACL, XDS_ACE ACE WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL AND NACL.ACLID = ACE.ACLID AND NOT EXISTS (SELECT NULL FROM ALL_USERS WHERE USERNAME = PRINCIPAL);
次に、次のコードを実行してACLを修正します。
DECLARE ACL_ID RAW(16); CNT NUMBER; BEGIN -- Look for the object ID of the ACL currently assigned to '*' SELECT ACLID INTO ACL_ID FROM DBA_NETWORK_ACLS WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL; -- If just some users referenced in the ACL are invalid, remove just those -- users in the ACL. Otherwise, drop the ACL completely. SELECT COUNT(PRINCIPAL) INTO CNT FROM XDS_ACE WHERE ACLID = ACL_ID AND EXISTS (SELECT NULL FROM ALL_USERS WHERE USERNAME = PRINCIPAL); IF (CNT > 0) THEN FOR R IN (SELECT PRINCIPAL FROM XDS_ACE WHERE ACLID = ACL_ID AND NOT EXISTS (SELECT NULL FROM ALL_USERS WHERE USERNAME = PRINCIPAL)) LOOP UPDATE XDB.XDB$ACL SET OBJECT_VALUE = DELETEXML(OBJECT_VALUE, '/ACL/ACE[PRINCIPAL="'||R.PRINCIPAL||'"]') WHERE OBJECT_ID = ACL_ID; END LOOP; ELSE DELETE FROM XDB.XDB$ACL WHERE OBJECT_ID = ACL_ID; END IF; END; / REM commit the changes. COMMIT;
ACLの修正後、このセクションの最初のスクリプトを実行してAPEX_030200
ユーザーにACLを適用する必要があります。「接続権限の付与」を参照してください。
Oracle Application Expressオンライン・ヘルプを検索する機能がOracle TextおよびURLデータ・ストアによって実現します。Oracle TextのURLデータ・ストアをDatabase 11gリリース2以上で使用する場合のデフォルトの動作と権限に変更があります。
Oracle Database 11gリリース2でOracle Application Expressのオンライン・ヘルプを検索しようとして、次のエラーが発生した場合、Oracle Text URLデータ・ストアを使用するための権限がデータベース・ユーザーAPEX_030200
に付与されていません。
ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine ORA-20000: Oracle Text error: DRG-10758: index owner does not have the privilege to use file or URL data store
Oracle Application Expressでオンライン・ヘルプの索引付けを有効にするには、Oracle Text URLデータ・ストアを使用するための権限をAPEX_030200
データベース・ユーザーに付与する必要があります。これを行うには、この特定の権限をデータベース・ロールに割り当ててから、そのロールをAPEX_030200
データベース・ユーザーに付与します。
Oracle TextのURLデータ・ストアを使用するための権限がデータベース・ロールに付与されているかどうかを確認するには、次のステップを実行します。
SQL*Plusを起動し、Oracle Application Expressがインストールされているデータベースに、SYSDBA
ロールが指定されているSYS
として接続します。次に例を示します。
Windowsの場合:
SYSTEM_DRIVE:\ sqlplus /nolog SQL> CONNECT SYS as SYSDBA Enter password: SYS_password
UNIXおよびLinuxの場合:
$ sqlplus /nolog
SQL> CONNECT SYS as SYSDBA
Enter password: SYS_password
次のコマンドを実行します。
SELECT par_value FROM ctxsys.ctx_parameters WHERE par_name = 'FILE_ACCESS_ROLE';
NULL
、またはOracle TextのURLデータ・ストアを使用する権限が付与されているデータベース・ロールが戻されます。
ステップ2で値が戻らなかった場合は、次の例に示すように新しいデータベース・ロールを作成します。
CREATE ROLE APEX_URL_DATASTORE_ROLE;
次の文を使用して、このロールをデータベース・ユーザーAPEX_030200
に付与します。
GRANT APEX_URL_DATASTORE_ROLE to APEX_030200;
ステップ2で値が戻った場合は、例のAPEX_URL_DATASTORE_ROLE
のかわりに、そのデータベース・ロール名を使用します。
最後に、ステップ2で値が戻らなかった場合は、Oracle Text APIで次の文を使用して、新しく作成されたデータベース・ロールに権限を付与します。
EXEC ctxsys.ctx_adm.set_parameter('file_access_role', 'APEX_URL_DATASTORE_ROLE');
HTTPリクエストで、パスワードやその他の機密データがクリア・テキストで送信されることのないように、Secure Sockets Layer(SSL)を構成して使用することをお薦めします。SSLを使用しないと、パスワードが公開され、セキュリティが損なわれる可能性があります。
SSLは、業界標準のプロトコルです。RSA公開鍵暗号化と対称鍵暗号化を組み合せて使用することにより、認証、暗号化およびデータの整合性が提供されます。
Oracle Application Expressのインタフェースは、ドイツ語、スペイン語、フランス語、イタリア語、日本語、韓国語、ポルトガル語(ブラジル)、簡体字中国語および繁体字中国語に変換できます。Oracle Application Expressの単一インスタンスは、これらの言語変換されたバージョンを1つ以上実装してインストールできます。実行時に、各ユーザーのWebブラウザの言語設定によって、特定の言語バージョンが使用されます。
言語変換されたバージョンのOracle Application Expressは、その特定言語をサポートするキャラクタ・セットが実装されたデータベースにロードする必要があります。言語変換されたバージョンのOracle Application Expressを、その言語の文字コードをサポートしないデータベースにインストールすると、インストールが正常に実行されなかったり、言語変換されたOracle Application Expressインスタンスが実行時に破損しているように見える場合があります。データベース・キャラクタ・セットAL32UTF8
は、言語変換されたすべてのバージョンのOracle Application Expressをサポートします。
言語変換されたバージョンのOracle Application Expressを手動でインストールするには、SQL*Plusを使用します。インストール・ファイルはAL32UTF8
にエンコードされます。
注意: 言語変換されたバージョンのOracle Application Expressをインストールするには、ターゲット・データベースのキャラクタ・セットにかかわらず、SQL*Plusを起動する前に環境変数NLS_LANG のキャラクタ・セット値をAL32UTF8 に設定する必要があります。 |
言語変換されたバージョンのOracle Application Expressのロードに有効なNLS_LANG
設定の例を次に示します。
American_America.AL32UTF8 Japanese_Japan.AL32UTF8
初めてインストールを行う場合も以前のリリースからアップグレードする場合も、言語変換されたバージョンのOracle Application Expressを実行するには、load_
lang
.sql
スクリプトを実行する必要があります。
インストール・スクリプトは、配布を解凍したapex/builder
のサブディレクトリに格納されます。これらのサブディレクトリは、言語コードで識別されます。たとえば、ドイツ語バージョンはapex/builder/de
、日本語バージョンはapex/builder/ja
に格納されます。各ディレクトリには、言語コード(たとえば、load_de.sql
やload_ja.sql
)で識別される、言語固有のロード・スクリプトが格納されます。
言語変換されたバージョンのOracle Application Expressをインストールするには、次のステップを実行します。
環境変数NLS_LANG
をキャラクタ・セットAL32UTF8
に設定します。次に例を示します。
BourneシェルまたはKornシェルの場合:
NLS_LANG=American_America.AL32UTF8 export NLS_LANG
Cシェルの場合:
setenv NLS_LANG American_America.AL32UTF8
Windowsベースのシステムの場合:
set NLS_LANG=American_America.AL32UTF8
SQL*Plusを起動し、Oracle Application Expressがインストールされているデータベースに、SYSDBA
ロールが指定されているSYS
として接続します。次に例を示します。
Windowsの場合:
SYSTEM_DRIVE:\ sqlplus /nolog SQL> CONNECT SYS as SYSDBA Enter password: SYS_password
UNIXおよびLinuxの場合:
$ sqlplus /nolog
SQL> CONNECT SYS as SYSDBA
Enter password: SYS_password
次の文を実行します。
ALTER SESSION SET CURRENT_SCHEMA = APEX_030200;
該当する言語固有のスクリプトを実行します。次に例を示します。
@load_lang.sql
lang
は特定の言語です。たとえば、ドイツ語の場合はload_de.sql
、日本語の場合はload_ja.sql
となります。
JOB_QUEUE_PROCESSES
には、同時に実行するジョブの最大数を指定します。Oracle Application Expressリリース3.2では、トランザクションのサポートおよびSQLスクリプトでジョブが必要です。JOB_QUEUE_PROCESSES
が有効でなく、正常に動作していない場合、スクリプトを正常に実行することはできません。
このセクションの内容は次のとおりです。
JOB_QUEUE_PROCESSES
の数を表示するには、3つの方法があります。
インストール・ログ・ファイル
Oracle Application Expressの「Application Expressのバージョン情報」ページ
SQL*Plus
Oracle Application Expressリリース3.2をインストールした後、またはOracle Application Expressをリリース3.2にアップグレードした後、JOB_QUEUE_PROCESSES
の数をインストール・ログ・ファイルに表示できます。「インストール・セッションのログの確認」を参照してください。
「Application Expressのバージョン情報」ページにJOB_QUEUE_PROCESSES
の数を表示することもできます。
「Application Expressのバージョン情報」ページを表示するには、次のステップを実行します。
Oracle Application Expressにログインします。詳細は、「Oracle Application Express作業領域へのログイン」を参照してください。
「管理」リストで、「Application Expressのバージョン情報」をクリックします。
ページの下部に、現在のJOB_QUEUE_PROCESSES
の数が表示されます。
SQL*Plusで次のSQL文を実行して、JOB_QUEUE_PROCESSES
の数を変更できます。
JOB_QUEUE_PROCESSES
の数を更新するには、次のステップを実行します。
SQL*Plusを起動し、Oracle Application Expressがインストールされているデータベースに、SYSDBA
ロールが指定されているSYS
として接続します。
Windowsの場合:
SYSTEM_DRIVE:\ sqlplus /nolog SQL> CONNECT SYS as SYSDBA Enter password: SYS_password
UNIXおよびLinuxの場合:
$ sqlplus /nolog
SQL> CONNECT SYS as SYSDBA
Enter password: SYS_password
SQL*Plusで次のSQL文を実行します。
ALTER SYSTEM SET JOB_QUEUE_PROCESSES = <number>
たとえば、ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 20
を実行すると、JOB_QUEUE_PROCESSES
は20に設定されます。
PlsqlDatabasePassword
パラメータは、データベースへのログイン用のパスワードを指定します。dadTool.pl
ユーティリティを使用すると、dads.conf
ファイル内のパスワードを難読化できます。
dadTool.pl
ユーティリティは、次のディレクトリに格納されています。
UNIXベースおよびLinuxベースのシステムの場合:
ORACLE_BASE/ORACLE_HTTPSERVER_HOME/Apache/modplsql/conf
Windowsベースのシステムの場合:
ORACLE_BASE\ORACLE_HTTPSERVER_HOME\Apache\modplsql\conf
Webブラウザを使用して作業領域にログインし、Oracle Application Expressのホームページにアクセスします。使用するWebブラウザでJavaScript、HTML 4.0およびCSS 1.0規格がサポートされている必要があります。「ブラウザの要件」を参照してください。
作業領域は、複数のユーザーが、各自のオブジェクト、データおよびアプリケーションをそれぞれに保持しながら、同じOracle Application Expressインストール内で作業できる、仮想プライベート・データベースです。各作業領域には、一意のIDと名前があります。
Oracle Application Express管理者は、Oracle Application Express管理サービス内に作業領域を手動で作成するか、ユーザーにリクエストを送信してもらうことができます。Oracle Application Express管理サービスは、Oracle Application Expressインスタンス全体を管理するための独立したアプリケーションです。詳細は、『Oracle Application Express管理ガイド』の「作業領域の作成」および「作業領域リクエストの管理」を参照してください。
参照: Oracle Application Expressを初めて使用する場合は、『Oracle Database Application Express 2日で開発者ガイド』を参照してください。 |
このセクションの内容は次のとおりです。
Oracle Application Express作業領域を手動で作成するには、次のステップを実行します。
Oracle Application Express管理サービスにログインします。Oracle Application Express管理サービスは、Oracle Application Expressインスタンス全体を管理するための独立したアプリケーションです。ログインするには、インストール・プロセス中に作成または再設定したADMIN
アカウントおよびパスワードを使用します。
設定でApacheおよびmod_plsql
を使用する場合は、次のURLに移動します。
http://hostname:port/pls/apex/apex_admin
各要素の意味は次のとおりです。
hostname
は、Oracle HTTP Serverがインストールされているシステムの名前です。
port
は、Oracle HTTP Serverに割り当てられているポート番号です。デフォルトのインストールの場合、この番号は7777です。
pls
は、mod_plsql
カートリッジを使用するためのインジケータです。
apex
は、mod_plsql
構成ファイルで定義されているデータベース・アクセス記述子(DAD)です。
参照: 詳細は、『Oracle Application Express管理ガイド』の「Oracle Application Express管理サービスへのログイン」を参照してください。 |
次に、作業領域を作成します。
「作業領域の管理」をクリックします。
「作業領域の管理」で、「作業領域の作成」をクリックします。
「作業領域の作成」ウィザードが表示されます。
「作業領域の指定」に、作業領域の名前と説明を入力して、「次へ」をクリックします。
「スキーマの指定」で、Oracle Formsアプリケーションのスキーマを選択します。
「既存のスキーマを再利用」で、「はい」を選択します。
リストからスキーマを選択します。
「次へ」をクリックします。
「管理者の指定」に、作業領域管理者の情報を入力して、「次へ」をクリックします。
選択した内容を確認し、「作成」をクリックします。
Oracle Application Expressユーザー・アカウントを作成するには、次のステップを実行します。
前述のセクションで説明したように、Oracle Application Express管理サービスにログインします。詳細は、『Oracle Application Express管理ガイド』の「Oracle Application Express管理サービスへのログイン」を参照してください。
「作業領域の管理」をクリックします。
「作業領域の管理」で、「開発者とユーザーの管理」をクリックします。
「開発者とユーザーの管理」ページが表示されます。
「作成」をクリックします。
「ユーザーの作成/編集」ページが表示されます。
「ユーザー属性」で、適切な情報を入力します。アスタリスクが付いたフィールドは必須です。
ヒント: 特定の属性の詳細は、アイテム・ラベルをクリックしてください。ヘルプが利用できる場合は、アイテム・ラベル上にカーソルを重ねると、アイテム・ラベルが赤色に変わり、カーソルが矢印と疑問符に変わります。 |
「パスワード」に、このアカウントの大/小文字を区別したパスワードを入力します。
組織でパスワード・ポリシーを設定している場合は、パスワードが要件を満たすことを確認してください。
「開発者権限」で、適切な権限を選択します。
開発者ユーザー: 開発者または作業領域管理者としてこのユーザーを追加する場合は、「はい」を選択します。エンド・ユーザーの場合は、「いいえ」を選択します。
開発者は、アプリケーションおよびデータベース・オブジェクトの作成および変更、開発者アクティビティ、セッション・ステート、作業領域アクティビティおよびスキーマ・レポートの表示が可能です。
作業領域管理者ユーザー: 作業領域管理者としてこのユーザーを追加する場合は、「はい」を選択します。開発者またはエンド・ユーザーの場合は、「いいえ」を選択します。
作業領域管理者は、開発者権限を持っていることに加え、ユーザー・アカウントの作成および編集、グループの管理、同じ作業領域内のユーザーのパスワードの変更および開発サービスの管理が可能です。
アカウントの可用性: ユーザーがこのアカウントにログインできるようにするには、「ロック解除済」を選択します。
初回使用時にパスワードの変更が必要: ユーザーが現在の一時パスワードでログインした直後にパスワードを変更する必要がある場合は、「はい」を選択します。それ以外の場合は、「いいえ」を選択します。
「ユーザーの作成」または「作成後、別のものの作成」をクリックします。
作業領域を作成した後、ログイン資格証明(作業領域名、ユーザー名およびパスワード)を使用してログインします。
参照: Oracle Application Express管理ガイドの「作業領域の作成」および「作業領域リクエストの管理」を参照してください。 |
作業領域にログインするには、次のステップを実行します。
Webブラウザで、Oracle Application Expressの「ログイン」ページにナビゲートします。デフォルトでは、Oracle Application Expressは次の場所にインストールされます。
設定でOracle HTTP Server(Apache)およびmod_plsql
を使用する場合は、次のURLに移動します。
http://hostname:port/pls/apex
各要素の意味は次のとおりです。
hostname
は、Oracle HTTP Serverがインストールされているシステムの名前です。
port
は、Oracle HTTP Serverに割り当てられているポート番号です。デフォルトのインストールの場合、この番号は7777です。Oracle HTTP Serverのインストールのポート番号に関する情報は、次のファイルで確認できます。
ORACLE_BASE\ORACLE_HOME\install\portlist.ini ORACLE_BASE\ORACLE_HTTPSERVER_HOME\Apache\Apache\conf\httpd.conf
ポート番号を変更しても、portlist.ini
ファイル内の設定は変更されないことに注意してください。このファイルで正確な情報を確認できるのは、インストール直後のみです。
pls
は、mod_plsql
カートリッジを使用するためのインジケータです。
apex
は、mod_plsql
構成ファイルで定義されているデータベース・アクセス記述子(DAD)です。
以前のリリースからアップグレードしたユーザーや、カスタム構成があるユーザーの場合は、この値はhtmldb
かその他の値にする必要があります。Oracle Application Express管理者にDADを確認します。
「ログイン」ページが表示されます。
「ログイン」で、次の項目を入力します。
「作業領域」フィールド: 作業領域の名前を入力します。
「ユーザー名」フィールド: ユーザー名を入力します。
「パスワード」フィールド: 大/小文字を区別したパスワードを入力します。
「ログイン」をクリックします。
設定によっては、初めてログインするときにパスワードの変更を要求される場合があります。
アップグレード・インストールが正常に実行され、すべてのアップグレード済アプリケーションが正常に機能していることを確認したら、以前のOracle Application Expressインストールからスキーマを削除する必要があります。
このセクションの内容は次のとおりです。
以前のインストールのスキーマに関連付けられたデータベース・ユーザーは権限が付与されたユーザーです。不要になった場合は削除する必要があります。以前のインストールのスキーマの削除には、2つのステップがあります。最初に以前のインストールが存在することを確認して、次にスキーマを削除します。
以前のインストールが存在するかどうかを確認するには、次のステップを実行します。
SQL*Plusを起動し、Oracle Application ExpressがインストールされているデータベースにSYS
として接続します。次に例を示します。
Windowsの場合:
SYSTEM_DRIVE:\ sqlplus /nolog SQL> CONNECT SYS as SYSDBA Enter password: SYS_password
UNIXおよびLinuxの場合:
$ sqlplus /nolog
SQL> CONNECT SYS as SYSDBA
Enter password: SYS_password
次の問合せを実行します。
SELECT username FROM dba_users WHERE (username LIKE 'FLOWS_%' OR USERNAME LIKE 'APEX_%') AND USERNAME NOT IN ( SELECT 'FLOWS_FILES' FROM DUAL UNION SELECT 'APEX_PUBLIC_USER' FROM DUAL UNION SELECT SCHEMA s FROM dba_registry WHERE comp_id = 'APEX');
結果に書式がFLOWS_
XXXXXX
またはAPEX_
XXXXXX
(XXXXXX
は6つの数字を表す)のエントリが含まれる場合、それらのエントリは削除候補です。
以前のインストールのスキーマを削除するには、次のステップを実行します。
SQL*Plusを起動し、Oracle Application Expressがインストールされているデータベースに、SYSDBA
ロールが指定されているSYS
として接続します。次に例を示します。
Windowsの場合:
SYSTEM_DRIVE:\ sqlplus /nolog SQL> CONNECT SYS as SYSDBA Enter password: SYS_password
UNIXおよびLinuxの場合:
$ sqlplus /nolog
SQL> CONNECT SYS as SYSDBA
Enter password: SYS_password
次の例のような文を実行します。
DROP USER FLOWS_030000 CASCADE;
Oracle Database 11gを実行しており、以前のOracle Application Expressスキーマのネットワーク・サービスを有効化してある場合、「以前のOracle Application Expressインストールの削除」のステップを実行した後に、無効なACLを修正する必要がある場合があります。
無効なACLを修正するには、次のステップを実行します。
SQL*Plusを起動し、Oracle Application Expressがインストールされているデータベースに、SYSDBA
ロールが指定されているSYS
として接続します。次に例を示します。
Windowsの場合:
SYSTEM_DRIVE:\ sqlplus /nolog SQL> CONNECT SYS as SYSDBA Enter password: SYS_password
UNIXおよびLinuxの場合:
$ sqlplus /nolog
SQL> CONNECT SYS as SYSDBA
Enter password: SYS_password
次のような文を実行します。
EXEC DBMS_NETWORK_ACL_ADMIN.DELETE_PRIVILEGE('power_users.xml', 'FLOWS_030000');
Oracle Application Expressランタイム環境では、本番アプリケーションを実行できます。含まれるのは、アプリケーションの実行に必要なパッケージのみです。このため、ランタイム環境はより堅牢な環境となります。管理用のWebインタフェースは用意されていません。
Oracle Application Expressランタイム環境は、SQL*PlusまたはSQL DeveloperおよびAPEX_INSTANCE_ADMIN
APIを使用して管理します。詳細は、『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』のランタイム環境の管理に関する項を参照してください。
このセクションの内容は次のとおりです。
Oracle Application Expressランタイム環境を完全開発環境に変換するには、次のステップを実行します。
作業ディレクトリを、インストール・ソフトウェアを解凍したapex
ディレクトリに変更します。
SQL*Plusを起動し、Oracle Application Expressがインストールされているデータベースに、SYSDBA
ロールが指定されているSYS
として接続します。次に例を示します。
Windowsの場合:
SYSTEM_DRIVE:\ sqlplus /nolog SQL> CONNECT SYS as SYSDBA Enter password: SYS_password
UNIXおよびLinuxの場合:
$ sqlplus /nolog
SQL> CONNECT SYS as SYSDBA
Enter password: SYS_password
@apxdvins
参照: SQL*Plusの詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。 |
Oracle Application Express完全開発環境をランタイム環境に変換するには、次のステップを実行します。
作業ディレクトリを、インストール・ソフトウェアを解凍したapex
ディレクトリに変更します。
SQL*Plusを起動し、Oracle Application Expressがインストールされているデータベースに、SYSDBA
ロールが指定されているSYS
として接続します。次に例を示します。
Windowsの場合:
SYSTEM_DRIVE:\ sqlplus /nolog SQL> CONNECT SYS as SYSDBA Enter password: SYS_password
UNIXおよびLinuxの場合:
$ sqlplus /nolog
SQL> CONNECT SYS as SYSDBA
Enter password: SYS_password
@apxdevrm
「ADMINアカウントのパスワードの変更」のステップに従います。
参照: SQL*Plusの詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。 |