アプリケーションについて

このページのスクリプト・コンテンツはナビゲーションのみを目的としており、いかなる方法においても内容を変更するものではありません。

アプリケーションには、次の目的、構造、およびネーミング規則があります。

アプリケーションの目的

アプリケーションは、会社内の2種類のユーザーを対象としています。

一般ユーザーは、次のタスクを実行できます。

アプリケーション管理者は、次のタスクを実行できます。

アプリケーションの構造

アプリケーションでは、次のスキーマ・オブジェクトとスキーマが使用されます。

アプリケーションのスキーマ・オブジェクト

アプリケーションは、次のようなスキーマ・オブジェクトで構成されています。

関連情報:

アプリケーションのスキーマ

セキュリティのため、アプリケーションでは、次に示す5つのスキーマ(またはユーザー)が使用され、それぞれに必要な権限のみを付与されています。

app_userユーザーおよびapp_admin_userユーザーではなく、アプリケーションは、何も所有せず、employees_pkgパッケージおよびadmin_pkgパッケージの両方を実行できるスキーマのみを持つとします。このスキーマの接続プールには、一般ユーザーとアプリケーション管理者の両方に対して十分な大きさが必要です。SQLインジェクション・バグがemployees_pkgパッケージにあった場合、そのバグを利用した一般ユーザーはadmin_pkgパッケージにアクセスできます。

app_dataapp_codeおよびapp_adminスキーマではなく、アプリケーションには、パッケージを含むすべての スキーマ・オブジェクトを所有するスキーマが1つのみ存在するとします。この場合、パッケージは、不要な権限と好ましくない権限の両方を含む、表のすべての権限を持ちます。

たとえば、監査証跡の表AUDIT_TRAILを使用しているとします。employees_pkgパッケージの開発者はAUDIT_TRAIL表への書込みはできるが、読取りや変更はできないようにするとします。admin_pkgパッケージの開発者はAUDIT_TRAIL表の読取りと書込みはできるが、変更はできないようにするとします。AUDIT_TRAIL表とemployees_pkgパッケージおよびadmin_pkgパッケージが同じスキーマに属している場合、2つのパッケージの開発者はAUDIT_TRAIL表に対するすべての権限を持ちます。ただし、AUDIT_TRAIL表がapp_dataスキーマに属し、employees_pkgパッケージがapp_codeスキーマに属し、admin_pkgパッケージがapp_adminスキーマに属している場合、app_dataスキーマとしてデータベースに接続して次のコマンドを実行できます。

GRANT INSERT ON AUDIT_TRAIL TO app_code;
GRANT INSERT, SELECT ON AUDIT_TRAIL TO app_admin;

関連情報:

アプリケーションのネーミング規則

アプリケーションでは、次のネーミング規則が使用されます。

項目 名前
テーブル番号
table#のエディショネス・ビュー テーブル
エディショニング・ビューのトリガー

table_{a|b}event[_fer]

  • aはAFTERトリガーを示します。

  • bはBEFOREトリガーを識別します。

  • ferは、FOR EACH ROWトリガーを識別します。

  • eventは、トリガーを起動するイベントを識別します。たとえば、iはINSERT、iuはINSERTまたはUPDATE、dはDELETEです。

table#内のPRIMARY KEY制約 table_pk
table#.columnのNOT NULL制約 table_column_not_null1
table#.columnのUNIQUE制約 table_column_unique1
table#.columnのCHECK制約 table_column_check1
table1#.columnからtable2#.columnへのREF制約 table1_to_table2_fk1
table1#.column1からtable2#.column2へのREF制約 table1_col1からtable2_col2_fk1 2
table#の順序 表順序
パラメータ名 p_名前
ローカル変数名 l_名前
  1. 表1および表2は、従業員の場合はemp、部門の場合はdept、job_historyの場合はjob_histと略されます。参照 参照2 参照3 参照4 参照5

  2. col1およびcol2は、列名column1およびcolumn2の省略語です。制約名は、30文字以下にしてください。