ホーム > Oracle Application Expressのホスティングされたインスタンス管理 > スキーマの管理 > Oracleデフォルト・スキーマの制限の理解
前へ |
次へ |
Oracle Application Express管理者は、Oracle Application Expressのインストール時に、Oracleデフォルト・スキーマを作業領域に割り当てることができません。デフォルト・スキーマ(SYS
、SYSTEM
、RMAN
など)は、様々な製品機能および内部使用のために予約されています。デフォルト・スキーマへのアクセスは非常に強力な権限となる場合があります。たとえば、デフォルト・スキーマSYSTEM
へのアクセスが可能な作業領域では、SYSTEM
ユーザーを解析対象とするアプリケーションを実行できます。
Oracle Application Express管理者がOracleデフォルト・スキーマを作業領域に割り当てるためには、データベース管理者(DBA)はSQL*Plusを使用してAPEX_SITE_ADMIN_PRIVS
パッケージ内のプロシージャを実行し、明示的に権限を付与する必要があります。
注意: APEX_SITE_ADMIN_PRIVS パッケージのプロシージャへの引数として渡される、すべてのスキーマおよび作業領域の名前は、コール元で提供されている名前と同じものが使用されます。
たとえば、 |
トピック:
DBAは、SQL*Plusを使用してApplication Expressエンジン・スキーマ内でAPEX_SITE_ADMIN_PRIVS.UNRESTRICT_SCHEMA
プロシージャを実行することで、Oracleデフォルト・スキーマを作業領域に割り当てる権限をOracle Application Express管理者に付与できます。例を次に示します。
EXEC APEX_030200.APEX_SITE_ADMIN_PRIVS.UNRESTRICT_SCHEMA(p_schema => 'SYSTEM'); COMMIT;
この例では、Oracle Application Express管理者はあらゆる作業領域にSYSTEMスキーマを割り当てることが可能になります。
DBAは、SQL*Plusを使用してApplication Expressエンジン・スキーマ内でAPEX_SITE_ADMIN_PRIVS.RESTRICT_SCHEMA
プロシージャを実行することで、この権限を取り消せます。例を次に示します。
EXEC APEX_030200.APEX_SITE_ADMIN_PRIVS.RESTRICT_SCHEMA(p_schema => 'SYSTEM'); COMMIT;
この例では、Oracle Application Express管理者は作業領域にSYSTEMスキーマを割り当てることができなくなります。ただし、すでにSYSTEMスキーマに割当て済の作業領域によるSYSTEMスキーマは、そのまま使用できます。
スキーマがRESTRICT_SCHEMA
プロシージャを使用して制限されている場合、DBAはAPEX_SITE_ADMIN_PRIVS.CREATE_EXCEPTION
プロシージャを実行することで、特定の作業領域を例外として指定できます。次に例を示します。
EXEC APEX_030200.APEX_SITE_ADMIN_PRIVS.CREATE_EXCEPTION(p_schema => 'SYSTEM', p_workspace=> 'DBA_WORKSPACE'); EXEC APEX_030200.APEX_SITE_ADMIN_PRIVS.CREATE_EXCEPTION(p_schema => 'SYSTEM', p_workspace => 'AUDITOR_WORKSPACE'); COMMIT;
この例では、Oracle Application Express管理者はAUDITOR_WORKSPACEという名前の作業領域をSYSTEMスキーマに割り当てることができなくなります。ただし、この制限はREMOVE_EXCEPTION
プロシージャが実行された後に処理された作業領域の割当てリクエストに対してのみ適用されます。AUDITOR_WORKSPACEがすでにSYSTEMスキーマに割り当てられていた場合、この方法では作業領域によるスキーマの使用続行を阻止できません。
DBAは、SQL*Plusを使用してApplication Expressエンジン・スキーマ内でAPEX_SITE_ADMIN_PRIVS.REMOVE_WORKSPACE_EXCEPTIONS
プロシージャを実行することで、すべての作業領域の例外を取り消せます。例を次に示します。
EXEC APEX_030200.APEX_SITE_ADMIN_PRIVS.REMOVE_WORKSPACE_EXCEPTIONS(p_schema => 'SYSTEM'); COMMIT;
この例では、すでにSYSTEMスキーマが制限されているが、1つ以上の例外が事前に作成済の場合に、Oracle Application Express管理者はあらゆる作業領域をSYSTEMスキーマに割り当てることができなくなります。
DBAは、SQL*Plusを使用してApplication Expressエンジン・スキーマ内でREMOVE_SCHEMA_EXCEPTIONS
プロシージャを実行することで、すべてのスキーマの例外を取り消せます。例を次に示します。
EXEC APEX_030200.APEX_SITE_ADMIN_PRIVS.REMOVE_WORKSPACE_EXCEPTIONS(p_workspace => 'AUDITOR_WORKSPACE'); COMMIT;
この例では、AUDITOR_WORKSPACEという名前の作業領域に対して、制限付きスキーマに関連する例外が事前に作成されている場合に、Oracle Application Express管理者はあらゆる制限付きスキーマをこの作業領域に割り当てることができなくなります。
DBAは、SQL*Plusを使用してAPEX_SITE_ADMIN_PRIVS.REPORT
プロシージャを実行することで、権限の現在のステータスを判別できます。例を次に示します。
SET SERVEROUTPUT ON EXEC APEX_030200.APEX_SITE_ADMIN_PRIVS.REPORT;
この例では、スキーマおよび作業領域の制限を定義している表を出力するための問合せテキストが表示されます。
SELECT a.schema "SCHEMA",b.workspace_name "WORKSPACE" FROM WWV_FLOW_RESTRICTED_SCHEMAS a, WWV_FLOW_RSCHEMA_EXCEPTIONS b WHERE b.schema_id (+)= a.id;
この問合せの出力結果を確認する際は、次の点に注意してください。
SCHEMA列のスキーマ名は、そのスキーマが制限されていることを表します。
リストにないスキーマは制限されておらず、別の作業領域に割り当てられている可能性があります。
スキーマ名の隣の作業領域名は、この名前の作業領域に関連付けられたスキーマに例外が存在していることを意味します。
この問合せは、前述のとおりにSQL*Plusで実行することも、変更して別の形式で出力することも可能です。