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 setzt sich aus folgenden Schemaobjekten zusammen:

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 von app_user und app_admin_user nur ein Schema, dessen Eigentümer nichts war und das sowohl 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 in employees_pkg vorhanden war, konnte ein typischer Benutzer, der diesen Bug ausnutzte, auf admin_pkg zugreifen.

Angenommen, die Anwendung hatte statt 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 die Audittrailtabelle AUDIT_TRAIL. Sie möchten, dass die Entwickler von employees_pkg in AUDIT_TRAIL schreiben, es aber nicht lesen oder ändern können. Sie möchten, dass die Entwickler von admin_pkg AUDIT_TRAIL lesen und darauf schreiben können, aber nicht ändern können. Wenn AUDIT_TRAIL, employees_pkg und admin_pkg zum selben Schema gehören, haben die Entwickler der beiden Packages alle Berechtigungen für AUDIT_TRAIL. Wenn AUDIT_TRAIL jedoch zu app_data gehört, employees_pkg zu app_code gehört und admin_pkg zu app_admin gehört, können Sie sich als app_data bei der Datenbank anmelden und dies tun:

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_null (Fußnote 1)
UNIQUE-Constraint für table#.column table_column_unique (Fußnote 1)
CHECK-Constraint in table#.column table_column_check (Fußnote 1)
REF-Constraint auf table1#.column in table2#.column table1_to_table2_fk (Fußnote 1)
REF-Constraint auf table1#.column1 zu table2#.column2 table1_col1totable2_col2_fk (Fußnote 1) (Fußnote 2)
Folge für Tabellenr table_sequence
Parametername p_Name
Lokaler Variablennamen l_Name

Fußnote 1: Tabelle, Tabelle 1 und Tabelle 2 sind abgekürzt als emp für Mitarbeiter, Abteilung für Abteilungen und job_hist für job_history.

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