Informationen zur Anwendung

Der Skriptcontent auf dieser Seite ist ausschließlich für Navigationszwecke vorgesehen und bewirkt keinerlei Änderung des Contents.

Die Anwendung hat die folgenden Zweck-, Struktur- und Benennungskonventionen.

Zweck der Anwendung

Die Anwendung ist für zwei Arten von Benutzern in einem Unternehmen bestimmt.

Typische Benutzer können die folgenden Aufgaben ausführen:

Anwendungsadministratoren können die folgenden Aufgaben ausführen:

Struktur der Anwendung

Die Anwendung verwendet die folgenden Schemaobjekte und Schemas.

Schemaobjekte der Anwendung

Die Anwendung besteht aus den folgenden Schemaobjekten:

Siehe:

Schemas für die Anwendung

Aus Sicherheitsgründen verwendet die Anwendung die folgenden fünf Schemas (oder Benutzer), von denen jedes nur über die erforderlichen Berechtigungen verfügt.

Angenommen, die Anwendung hatte anstelle der Benutzer app_user und app_admin_user nur ein Schema, das Eigentümer von nichts war und sowohl die Packages employees_pkg als auch admin_pkg ausführen konnte. Der Connection Pool für dieses Schema muss groß genug für die typischen Benutzer und die Anwendungsadministratoren sein. Wenn ein SQL-Injection-Bug im employees_pkg-Package vorhanden war, konnte ein typischer Benutzer, der diesen Bug ausnutzte, auf das admin_pkg-Package zugreifen.

Angenommen, die Anwendung hatte anstelle der Schemas app_data, app_code und app_admin nur ein Schema, das Eigentümer aller Schemaobjekte war, einschließlich der Packages. Die Packages hätten dann alle Berechtigungen für die Tabellen, was unnötig und unerwünscht wäre.

Beispiel: Sie haben eine Audittrailtabelle, AUDIT_TRAIL. Sie möchten, dass die Entwickler des Packages employees_pkg in die Tabelle AUDIT_TRAIL schreiben, sie jedoch nicht lesen oder ändern können. Sie möchten, dass die Entwickler des Packages admin_pkg die Tabelle AUDIT_TRAIL lesen und in sie schreiben können, sie jedoch nicht ändern. Wenn die Packages AUDIT_TRAIL und employees_pkg und admin_pkg zu demselben Schema gehören, verfügen die Entwickler der beiden Packages über alle Berechtigungen für die Tabelle AUDIT_TRAIL. Wenn die Tabelle AUDIT_TRAIL jedoch zum Schema app_data gehört, das Package employees_pkg zum Schema app_code gehört und das Package admin_pkg zum Schema app_admin gehört, können Sie eine Verbindung zur Datenbank als Schema app_data herstellen und die folgenden Befehle ausführen:

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

Siehe:

Benennungskonventionen in der Anwendung

Die Anwendung verwendet diese Benennungskonventionen.

Element Name
Tabelle Tabellen-Nr.
Editionsansicht für Tabelle# Tabelle
Trigger für Editionierungsansicht der Tabelle

table_{a|b}event[_fer] wobei:

  • einen AFTER-Trigger kennzeichnet.

  • b identifiziert einen BEFORE-Trigger.

  • fer identifiziert einen FOR EACH ROW Trigger.

  • event gibt das Ereignis an, das den Trigger auslöst. Beispiel: i für INSERT, iu für INSERT oder UPDATE, d für DELETE.

PRIMARY KEY-Constraint in Tabelle# table_pk
NOT NULL-Constraint für table#.column table_column_not_null1
UNIQUE-Constraint für table#.column table_column_unique1
CHECK-Constraint in table#.column table_column_check1
REF-Constraint auf table1#.column in table2#.column table1_to_table2_fk1
REF-Constraint auf table1#.column1 zu table2#.column2 table1_col1totable2_col2_fk12
Folge für Tabellenr. table_sequence
Parametername p_Name
Lokaler Variablennamen l_Name
  1. table, table1 und table2 sind abgekürzt mit emp für Mitarbeiter, dept für Abteilungen und job_hist für job_history. 2 3 4 5

  2. col1 und col2 sind Abkürzungen der Spaltennamen column1 und column2. Ein Constraint-Name darf nicht mehr als 30 Zeichen enthalten.