Informazioni sull'applicazione

I componenti script in questa pagina sono utilizzati solo per scopi di navigazione e non alterano in alcun modo il contenuto.

L'applicazione dispone delle convenzioni di scopo, struttura e denominazione riportate di seguito.

Scopo dell'applicazione

L'applicazione è destinata a due tipi di utenti in un'azienda.

In genere, gli utenti possono eseguire i task riportati di seguito.

Gli amministratori dell'applicazione possono eseguire i task riportati di seguito.

Struttura dell'applicazione

L'applicazione utilizza gli oggetti e gli schemi schema riportati di seguito.

Oggetti schema dell'applicazione

L'applicazione è composta dai seguenti oggetti schema:

Vedere anche:

Schemi dell'applicazione

Per motivi di sicurezza, l'applicazione utilizza i cinque schemi (o utenti) elencati di seguito, ciascuno dei quali dispone solo dei privilegi necessari.

Si supponga che, al posto degli utenti app_user e app_admin_user, l'applicazione disponga di un solo schema che non possedeva nulla e che potesse eseguire entrambi i pacchetti employees_pkg e admin_pkg. Il connection pool per questo schema dovrebbe essere abbastanza grande sia per gli utenti standard che per gli amministratori dell'applicazione. Se c'era un bug di SQL injection nel pacchetto employees_pkg, un utente tipico che ha sfruttato quel bug potrebbe accedere al pacchetto admin_pkg.

Si supponga che, invece degli schemi app_data, app_code e app_admin, l'applicazione disponga di un solo schema proprietario di tutti gli oggetti dello schema, inclusi i package. I pacchetti avrebbero quindi tutti i privilegi sulle tabelle, che sarebbero sia inutili che indesiderabili.

Ad esempio, si supponga di disporre di una tabella di audit trail, AUDIT_TRAIL. Si desidera che gli sviluppatori del pacchetto employees_pkg siano in grado di scrivere nella tabella AUDIT_TRAIL, ma non di leggerlo o modificarlo. Si desidera che gli sviluppatori del pacchetto admin_pkg siano in grado di leggere la tabella AUDIT_TRAIL e scriverci, ma non di modificarla. Se la tabella AUDIT_TRAIL e i pacchetti employees_pkg e admin_pkg appartengono allo stesso schema, gli sviluppatori dei due pacchetti dispongono di tutti i privilegi sulla tabella AUDIT_TRAIL. Tuttavia, se la tabella AUDIT_TRAIL appartiene allo schema app_data, il pacchetto employees_pkg appartiene allo schema app_code e il pacchetto admin_pkg appartiene allo schema app_admin, è possibile connettersi al database come schema app_data ed eseguire i comandi seguenti:

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

Vedere anche:

Convenzioni di denominazione nell'applicazione

L'applicazione utilizza queste convenzioni di denominazione.

Elemento Nome
Tabella n. tabella
Vista edizione per tabella n. tabella
Attiva nella tabella della vista di edizione

tabella_{a|b}evento[_fer] dove:

  • a identifica un trigger AFTER.

  • b identifica un trigger PRIMA.

  • fer identifica un trigger FOR EACH ROW.

  • L'evento identifica l'evento che attiva il trigger. Ad esempio: i per INSERT, iu per INSERT o UPDATE, d per DELETE.

Vincolo PRIMARY KEY nella tabella n. tabella_pk
Vincolo NOT NULL su n. tabella.colonna table_column_not_null1
Vincolo UNIQUE sul n. tabella.colonna table_column_unique1
Vincolo CHECK sul n. tabella.colonna table_column_check1
Vincolo REF su n. tabella1.colonna a n. tabella2.colonna tabella1_to_tabella2_fk1
Vincolo REF su n. tabella1.colonna1 a n. tabella2.colonna2 table1_col1atable2_col2_fk12
Sequenza per n. tabella sequenza_tabella
Il nome del parametro p_nome
Nome della variabile locale l_nome
  1. table, table1 e table2 sono abbreviati in emp per i dipendenti, dept per i reparti e job_hist per job_history. 2 3 4 5

  2. col1 e col2 sono abbreviazioni dei nomi di colonna colonna1 e colonna2. Il nome di un vincolo non può contenere più di 30 caratteri.