2021年7月20日火曜日

ワークスペースへのスキーマ割り当てを制限する

 Oracle APEXの管理マニュアルのスキーマの管理に記載がある内容です。

こちらの記事でワークスペースに複数のスキーマを割り当てる方法を紹介しています。

Oracle Databaseがデフォルトで持っているスキーマについては、ワークスペースに割り当て不可になっています。そうでないスキーマ、つまりユーザーによって作成されたスキーマはワークスペースに割り当てることができます。

Oracle APEXの管理アプリケーションよりワークスペースの管理を実行し、ワークスペースとスキーマの割り当ての管理より、ワークスペースへのスキーマの追加を行います。

ワークスペースにスキーマを割り当てることができると、Oracle APEXではそのスキーマの権限でアプリケーションを実行することが可能になります

セキュリティ面で良いことはないので、Oracle APEXのアプリケーションに割り当てるべきでないスキーマについては、割り当てを制限しておきましょう。


すべてのワークスペースへの割り当てを制限する


スキーマPDBADMINは、スキーマの追加の選択肢として現れて欲しくありません。プロシージャAPEX_INSTANCE_ADMIN.RESTRICT_SCHEMAに引数としてスキーマ名PDBADMINを与えて呼び出すことにより、すべてのワークスペースへの割り当てを制限します。

begin

    apex_instance_admin.restrict_schema(p_schema => 'PDBADMIN');

    commit;

end;

/

結果としてスキーマPDBADMINは、ワークスペースに割り当てることができなくなります。

割り当て制限を解除するには、APEX_INSTANCE_ADMIN.UNRESTRICT_SCHMAを呼び出します。

begin

    apex_instance_admin.unrestrict_schema(p_schema => 'PDBADMIN');

    commit;

end;

/


特定のワークスペースに限定してスキーマの割り当てを許可する


スキーマHRをワークスペースAPEXDEVに限定して割り当てを許可します。

最初にAPEX_INSTANCE_ADMIN.RESTRICT_SCHEMAを呼び出し、スキーマHRの割り当てをすべてのワークスペースにたいして制限します。

begin

    apex_instance_admin.restrict_schema(p_schema => 'HR');

    commit;

end;

/

結果としてスキーマHRはワークスペースに割り当てることができなくなります。


その上で、ワークスペースAPEXDEVはスキーマHRの割り当てができる例外として登録します。そのためにプロシージャAPEX_INSTANCE_ADMIN.CREATE_SCHEMA_EXCEPTIONを呼び出します。

begin

    apex_instance_admin.create_schema_exception(

        p_schema => 'HR'

        , p_workspace => 'APEXDEV');

    commit;

end;

/

ワークスペースAPEXDEVに限り、スキーマHRの割り当てが可能になります。

例外の解除にはプロシージャAPEX_INSTANCE_ADMIN.REMOVE_SCHEMA_EXCEPTIONを呼び出します。

begin

    apex_instance_admin.remove_schema_exception(

        p_schema => 'HR'

        , p_workspace => 'APEXDEV');

    commit;

end;

/


設定状況を確認する


設定状況を確認する方法として、マニュアルではreport_instance_configuration.sqlの実行が紹介されています。このスクリプトはインストール・メディアのutilities以下に含まれています。

実行の一例です。

スクリプトを実行すると最初にレポートのヘッダーが表示されます。

SQL> @report_instance_configuration

================================================================================


Oracle Application Express Instance Configuration               2021-07-20 14:38


================================================================================


Database Information として、APEXがインストールされているデータベースの基本情報が表示されます。

Database Information

====================


Parameter            Value

-------------------- -----------------------------------------------------------

Server Host          localhost

Database Name        XEPDB1

Instance Name        XE

Version              Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production

AQ TM Processes      1

Dispatchers          (PROTOCOL=TCP) (SERVICE=XEXDB)

Multitenant          Enabled (connected to XEPDB1)

Job Queue Processes  4000

Shared Servers       1

DB Character Set     AL32UTF8

Server Time Zone     +09:00


Registry Informationとして有効なAPEXのバージョンが表示されます。

Registry Information

====================


Instance Schema       Version     Status

--------------------- ----------- --------

APEX_210100           21.1.2      VALID


All Application Express Schemasとして、Oracle APEXに関連するスキーマが一覧されます。過去のバージョンのスキーマを削除していない場合は、それも一覧されます。容量に余裕がある場合、私は過去バージョンのスキーマを削除していません。以前のバージョンでパブリック・シノニムの更新に不備があり、過去バージョンのスキーマをdropしたときにオブジェクトがINVALIDになったことがあったためです。

削除をする場合は以下のようなSQLにて、パブリック・シノニムの更新を確認すると良いでしょう。

select count(*) from dba_synonyms

where owner = 'PUBLIC' and table_owner <> 'APEX_210100' and table_owner like 'APEX%'

OPENになっているアカウントはORDSからの接続に使用されます。

All Application Express Schemas

===============================


Schema                   Account Status   Type                        Info

------------------------ ---------------- --------------------------- ---------------

FLOWS_FILES              LOCKED           APEX File Repository

ANONYMOUS                EXPIRED & LOCKED APEX Instance (Development)

APEX_180200              LOCKED           APEX Instance (Development) Old (remove)

APEX_190100              LOCKED           APEX Instance (Development) Old (remove)

APEX_190200              LOCKED           APEX Instance (Development) Old (remove)

APEX_200100              LOCKED           APEX Instance (Development) Old (remove)

APEX_200200              LOCKED           APEX Instance (Development) Old (remove)

APEX_210100              LOCKED           APEX Instance (Development) Current - en

APEX_PUBLIC_USER         OPEN             APEX Run User (ORDS, OHS)

APEX_LISTENER            OPEN             ORDS REST Admin User

APEX_REST_PUBLIC_USER    OPEN             ORDS REST Run User

ORDS_PUBLIC_USER         OPEN             ORDS REST Run User

ORDS_METADATA            LOCKED           ORDS Repository User


Objects in APEX_210100はOracle APEXのデータベース・オブジェクトです。すべてVALIDになっているはずです。スキーマ名のAPEX_210100はインストールされているAPEXのバージョンによって変わります。

Objects in APEX_210100

======================


Status     Type                            Count Last DDL

---------- ------------------------------ ------ ----------

VALID      FUNCTION                            8 2021-07-20

VALID      INDEX                            1251 2021-07-20

VALID      JOB                                10 2021-07-20

VALID      LOB                               150 2021-05-13

VALID      PACKAGE                           357 2021-07-05

VALID      PACKAGE BODY                      353 2021-07-20

VALID      PROCEDURE                          10 2021-05-13

VALID      SEQUENCE                            6 2021-05-13

VALID      SYNONYM                             3 2021-05-13

VALID      TABLE                             355 2021-07-20

VALID      TRIGGER                           418 2021-07-20

VALID      TYPE                               31 2021-05-13

VALID      TYPE BODY                           5 2021-05-13

VALID      VIEW                              353 2021-07-20



Constraints in APEX_210100はOracle APEXのデータベースの制約です。すべて有効(ENABLED)になっているはずです。

Constraints in APEX_210100

==========================


Owner       Type Status      Count

----------- ---- ---------- ------

APEX_210100 C    ENABLED      2794

APEX_210100 P    ENABLED       333

APEX_210100 R    ENABLED       516

APEX_210100 U    ENABLED       118

APEX_210100 V    ENABLED         1

FLOWS_FILES C    ENABLED         3

FLOWS_FILES P    ENABLED         1

FLOWS_FILES R    ENABLED         1

FLOWS_FILES U    ENABLED         1



Constraints in other schemas referencing APEXは現行以外のスキーマが持っている制約です。あまり気にしなくて良いでしょう。

Constraints in other schemas referencing APEX

=============================================


Referencing Owner              Referencing Constraint         APEX Schema APEX Constraint                Status

------------------------------ ------------------------------ ----------- ------------------------------ ----------

APEX_180200                    WWV_FLOW_SW_RESULT_FK          FLOWS_FILES WWV_FLOW_FILE_OBJ_PK           ENABLED

APEX_180200                    WWV_FLOW_SW_STMTS_FK           FLOWS_FILES WWV_FLOW_FILE_OBJ_PK           ENABLED

APEX_190100                    WWV_FLOW_SW_RESULT_FK          FLOWS_FILES WWV_FLOW_FILE_OBJ_PK           ENABLED

APEX_190100                    WWV_FLOW_SW_STMTS_FK           FLOWS_FILES WWV_FLOW_FILE_OBJ_PK           ENABLED

APEX_190200                    WWV_FLOW_SW_RESULT_FK          FLOWS_FILES WWV_FLOW_FILE_OBJ_PK           ENABLED

APEX_190200                    WWV_FLOW_SW_STMTS_FK           FLOWS_FILES WWV_FLOW_FILE_OBJ_PK           ENABLED

APEX_200100                    WWV_FLOW_BACKUPS_FK2           FLOWS_FILES WWV_FLOW_FILE_OBJ_PK           ENABLED

APEX_200100                    WWV_FLOW_SW_RESULT_FK          FLOWS_FILES WWV_FLOW_FILE_OBJ_PK           ENABLED

APEX_200100                    WWV_FLOW_SW_STMTS_FK           FLOWS_FILES WWV_FLOW_FILE_OBJ_PK           ENABLED

APEX_200200                    WWV_FLOW_BACKUPS_FK2           FLOWS_FILES WWV_FLOW_FILE_OBJ_PK           ENABLED

APEX_200200                    WWV_FLOW_SW_RESULT_FK          FLOWS_FILES WWV_FLOW_FILE_OBJ_PK           ENABLED

APEX_200200                    WWV_FLOW_SW_STMTS_FK           FLOWS_FILES WWV_FLOW_FILE_OBJ_PK           ENABLED



Versioned APIsはバージョン番号を持っているパッケージについて、そのバージョンを一覧しています。バージョンはOracle APEXとしてパッケージに定義しており、ファンクションGET_VERSION_IDENTIFIERを呼び出して取得します。

Versioned APIs

==============


Owner       Object Name                    Version Identifier

----------- ------------------------------ -------------------------------------

APEX_210100 WWV_FLOW_API                   92780 2021-04-15 08:54:43

APEX_210100 WWV_FLOW_INTERACTIVE_GRID      92634 2021-04-01 19:35:19

APEX_210100 WWV_FLOW_IR_RENDER

SYS         WWV_FLOW_VAL                   86212 2020-05-15 16:28:06


Single Sign-On (OSSO)はSSOの実装状況になります。

Single Sign-On (OSSO)

=====================


- WWV_FLOW_CUSTOM_AUTH_SSO is not installed

- Synonym WWSEC_ENABLER_CONFIG_INFO$ does not exist

- Synonym WWSEC_SSO_ENABLER_PRIVATE does not exist

- SELECT on WWSEC_ENABLER_CONFIG_INFO$ has NOT been granted

- EXECUTE on WWSEC_SSO_ENABLER_PRIVATE has NOT been granted


Network ACLs for APEX_210100にはNetwork ACLがリストされます。アップグレードの際に手動で再登録する必要があります。この点については以前に記事を書いています。

Network ACLs for APEX_210100

============================


Authorized URLsはOracle APEXの管理アプリケーションからインスタンスの管理を開き、セキュリティ認可済URLとして定義したURLです。

Authorized URLs

===============



Workspace Schema Restrictions and Exceptionsが今回設定した、ワークスペースへの割り当てが制限されたスキーマの一覧です。

Workspace Schema Restrictions And Exceptions

============================================


Restricted Schema              Exception for Workspace

------------------------------ -------------------------------------------------

ANONYMOUS

APEX_180200

APEX_190100

APEX_190200

APEX_200100

APEX_200200

APEX_210100

APEX_INSTANCE_ADMIN_USER

APEX_LISTENER

APEX_PUBLIC_USER

APEX_REST_PUBLIC_USER

APPQOSSYS

AUDSYS

AURORA$JIS$UTILITY$

AURORA$ORB$UNAUTHENTICATED

AVSYS

CTXSYS

DBSFWUSER

DBSNMP

DGPDB_INT

DIP

DMSYS

DVF

DVSYS

EXFSYS

FLOWS_FILES

GGSYS

GSMADMIN_INTERNAL

GSMCATUSER

GSMUSER

HR                             APEXDEV

HTMLDB_PUBLIC_USER

LBACSYS

MDDATA

MDSYS

MGMT_VIEW

ODM

ODM_MTR

OE

OJVMSYS

OLAPSYS

ORACLE_OCM

ORDDATA

ORDPLUGINS

ORDSYS

ORDS_METADATA

ORDS_PUBLIC_USER


Restricted Schema              Exception for Workspace

------------------------------ -------------------------------------------------

OSE$HTTP$ADMIN

OUTLN

OWBSYS

PDBADMIN

PERFSTAT

PM

QS

QS_ADM

QS_CB

QS_CBADM

QS_CS

QS_ES

QS_OS

QS_WS

REMOTE_SCHEDULER_AGENT

RMAN

SCOTT

SH

SI_INFORMTN_SCHEMA

SPATIAL_CSW_ADMIN_USR

SPATIAL_WFS_ADMIN_USR

SYS

SYS$UMF

SYSBACKUP

SYSDG

SYSKM

SYSMAN

SYSRAC

SYSTEM

TSMSYS

WKPROXY

WKSYS

WK_TEST

WMSYS

XDB

XS$NULL



Instance Parameters
はOracle APEXのインスタンス・パラメータとして設定されている値の一覧です。

Instance Parameters

===================


Name                                    Value                                    Updated On

--------------------------------------- ---------------------------------------- ----------

ALLOW_DB_MONITOR                        N                                        2018-10-22

ALLOW_PUBLIC_FILE_UPLOAD                N                                        2018-10-22

ALLOW_RAS                               N                                        2018-10-22

APEX_BUILDER_AUTHENTICATION             APEX                                     2018-10-22

APEX_LISTENER_FOP_PATH                  _/fop2pdf                                2018-10-22

APEX_PATCH_STATUS                       APPLIED                                  2021-05-13

APEX_REST_PATH_PREFIX                   r                                        2018-10-22

APPLICATION_ACTIVITY_LOGGING            U                                        2018-10-22

APPLICATION_ID_MIN                      100                                      2018-10-22

APP_EXPORT_TO_DB_ENABLED                Y                                        2018-10-22

AUDIT_LOG_RETENTION                     90                                       2018-10-22

AUTOEXTEND_TABLESPACES                  Y                                        2018-10-22

AUTO_SCHEMA_NAME                        N                                        2018-10-22

AUTO_WORKSPACE_NAME                     N                                        2018-10-22

BIGFILE_TABLESPACES_ENABLED             N                                        2018-10-22

CHECK_FOR_UPDATES                       Y                                        2018-10-22

CLONE_SESSION_ENABLED                   Y                                        2018-10-22

CONTENT_CACHE_MAX_FILE_SIZE             1048576                                  2018-10-22

CONTENT_CACHE_SIZE_TARGET               104857600                                2018-10-22

DEBUG_MESSAGE_PAGE_VIEW_LIMIT           50000                                    2018-10-22

DEFAULT_THEMES                          42,51                                    2021-05-13

DELETE_UPLOADED_FILES_AFTER_DAYS        14                                       2018-10-22

DG_ALLOW_FORMULAS                       Y                                        2021-05-13

DG_ALLOW_JSON_DATA_SOURCES              Y                                        2021-05-13

DG_ALLOW_MULTI_VALUE                    Y                                        2021-05-13

DG_ALLOW_SQL_DATA_SOURCES               Y                                        2021-05-13

DG_ALLOW_TABLE_DATA_SOURCES             Y                                        2021-05-13

DG_ALLOW_TABLE_DATA_SOURCE_WHERE_CLAUSE Y                                        2021-05-13

DG_MAXIMUM_NUMBER_OF_JSON_ROWS_TO_LOAD_ 500000                                   2021-05-13

PER_BUILTIN


DG_MAXIMUM_NUMBER_OF_ROWS_TO_RETRIEVE_F 500000                                   2021-05-13

ROM_REST_DATA_SOURCE


DG_MAXIMUM_ROWS_PER_TABLE               500000                                   2021-05-13

DG_PRIORITIZE_SPEED_OVER_RANDOMNESS     Y                                        2021-05-13

DG_USE_POWERSET_IF_AVAILABLE            Y                                        2021-05-13

DISABLE_ADMIN_LOGIN                     N                                        2018-10-22

DISABLE_WORKSPACE_LOGIN                 N                                        2018-10-22

DISABLE_WS_PROV                         N                                        2018-10-22

EMAIL_IMAGES_URL                        http://localhost:8080/i/19.1.0.00.15/    2019-05-14

EMAIL_INSTANCE_URL                      http://localhost:8080/ords/xepdb1/       2018-10-22

ENABLE_TRANSACTIONAL_SQL                N                                        2018-10-22

ENCRYPTED_TABLESPACES_ENABLED           N                                        2018-10-22

EXPIRE_FND_USER_ACCOUNTS                Y                                        2018-10-22

GETTING_STARTED_ENABLED                 N                                        2018-10-22

GET_STARTED_URL                         https://apex.oracle.com/go/get_started_a 2019-11-06


Name                                    Value                                    Updated On

--------------------------------------- ---------------------------------------- ----------

                                        pex


HPROF_DIRECTORY                         -                                        2018-10-22

IGNORED_FRIENDLY_URL_PARAMETERS         utm_campaign,utm_source,utm_medium,utm_t 2020-06-03

                                        erm,utm_content,fbclid


IMAGE_PREFIX                            /i/21.1.0/                               2021-05-13

INSTANCE_ID                             248259925035928                          2018-10-22

KEEP_SESSIONS_ON_UPGRADE                N                                        2018-10-22

KILL_SESSIONS_LAST_CALL_ET              3600                                     2021-05-13

KILL_SESSIONS_WAIT_TIME_SEC             120                                      2021-05-13

LOGIN_THROTTLE_DELAY                    5                                        2018-10-22

LOGIN_THROTTLE_METHODS                  USERNAME_IP                              2018-10-22

MAX_APPLICATION_BACKUPS                 25                                       2020-04-24

MAX_LOGIN_FAILURES                      4                                        2020-04-24

MAX_SCRIPT_SIZE                         500000                                   2018-10-22

MAX_SESSION_IDLE_SEC                    3600                                     2018-10-22

MAX_SESSION_LENGTH_SEC                  28800                                    2018-10-22

MAX_WEBSERVICE_REQUESTS                 1000                                     2018-10-22

MLE_LANGUAGES                           JAVASCRIPT                               2020-10-22

MOBILE_DEVELOPMENT_ENABLED              N                                        2018-10-22

PASSWORD_ALPHA_CHARACTERS               abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMN 2018-10-22

                                        OPQRSTUVWXYZ


PASSWORD_PUNCTUATION_CHARACTERS         !"#$%&()``*+,-/:;<=>?_                   2018-10-22

PKG_APP_AUTH_ALLOW_HHEAD                N                                        2018-10-22

PKG_APP_AUTH_ALLOW_LDAP                 N                                        2018-10-22

PKG_APP_AUTH_ALLOW_SSO                  N                                        2018-10-22

PKG_APP_ENABLED                         Y                                        2018-10-22

PLSQL_EDITING                           Y                                        2018-10-22

PRINT_BIB_LICENSED                      APEX_LISTENER                            2018-10-22

PRINT_SVR_TIMEOUT                       300                                      2018-10-22

REJOIN_EXISTING_SESSIONS                P                                        2018-10-22

REQUIRE_HTTPS                           N                                        2018-10-22

REQUIRE_VERIFICATION_CODE               N                                        2018-10-22

REQ_NEW_SCHEMA                          N                                        2018-10-22

RESTFUL_SERVICES_ENABLED                Y                                        2018-10-22

SELF_SERVICE_SCHEMA_PREFIX              WKSP_                                    2020-10-22

SERVICE_REQUESTS_ENABLED                Y                                        2018-10-22

SERVICE_REQUEST_FLOW                    MANUAL                                   2018-10-22

SMTP_HOST_ADDRESS                       localhost                                2018-10-22

SMTP_HOST_PORT                          25                                       2018-10-22

SMTP_TLS_MODE                           N                                        2018-10-22

SQL_SCRIPT_MAX_OUTPUT_SIZE              200000                                   2018-10-22

STATS_LAST_SENT                         20210720                                 2021-07-20

STRONG_SITE_ADMIN_PASSWORD              Y                                        2018-10-22

SYSTEM_HELP_URL                         https://apex.oracle.com/doc211           2021-05-13


Name                                    Value                                    Updated On

--------------------------------------- ---------------------------------------- ----------

TOP_THEMES                              42,51                                    2021-05-13

TRACING_ENABLED                         Y                                        2018-10-22

UPGRADE_DEFERRED                        N                                        2020-04-24

UPGRADE_DEFER_DAYS                      30                                       2020-04-24

USERNAME_VALIDATION                     *                                        2018-10-22

WALLET_PATH                             file:///opt/oracle/product/apex/wallet   2018-10-22

WEBSERVICE_LOGGING                      U                                        2018-10-22

WEBSHEET_CREATE_ENABLED                 N                                        2020-10-22

WEBSHEET_SQL_ACCESS                     N                                        2018-10-22

WORKSPACE_EMAIL_MAXIMUM                 1000                                     2018-10-22

WORKSPACE_ISSUE_FILES_YN                Y                                        2019-11-06

WORKSPACE_ISSUE_FS_LIMIT                15728640                                 2019-11-06

WORKSPACE_MAX_OUTPUT_SIZE               2000000                                  2018-10-22

WORKSPACE_PROVISION_DEMO_OBJECTS        N                                        2018-10-22

WORKSPACE_TEAM_DEV_FILES_YN             N                                        2018-10-22

WORKSPACE_TEAM_DEV_FS_LIMIT             15728640                                 2018-10-22

WORKSPACE_WEBSERVICE_REQUEST_MAX        1000                                     2018-10-22

WORKSPACE_WEBSHEET_OBJECTS              N                                        2018-10-22

WS_REQUEST_USAGE_Q                      N                                        2020-04-24

最後にInstance Administratorsとして、管理者の情報を表示します。

Instance Administrators

=======================


User Name                      Email Address                            Last Login Locked?

------------------------------ ---------------------------------------- ---------- -------

ADMIN                          ADMIN                                    2021-07-20 No


================================================================================


今回の記事は以上です。