Per raggiungere il tuo obiettivo
puoi creare:
1) Due schemi:uno per le tabelle comuni, uno per elementi di sicurezza come la tabella login/pass(hash), il registro della sessione utente, la tabella del registro delle modifiche, ecc.
2) Due utenti:un utente comune, che può usare solo dml su schema comune (no ddl), un superutente.
3) Funzione di accesso che verificherà l'utente/passo fornito rispetto alla tabella di accesso/passo e registrerà i tentativi riusciti/non riusciti nel registro della sessione dell'utente (è necessario SECURITY DEFINER
funzione)
4) Insieme di trigger di audit su tabelle di schemi comuni che verificheranno i privilegi dell'utente e registreranno eventuali modifiche apportate dall'utente (SECURITY DEFINER
funziona anche qui).