Löschen eines Benutzers verhindern

Sie möchten verhindern, dass ein bestimmter Benutzer gelöscht wird? Dazu können Sie unter Oracle einen Datenbank-Trigger verwenden. Ein Beispiel:

Oracle SQL: Löschen eines Benutzers verhindern
DROP TRIGGER TrgDropUserRestriction
/
 
CREATE OR REPALCE TRIGGER TrgDropUserRestriction
BEFORE DROP
ON DATABASE
DECLARE
BEGIN
    IF Ora_Dict_Obj_Name IN ('SCOTT','OUTLN') 
    THEN
        Raise_Application_Error(
              -20001,
              'Cannot Drop User ' ||ora_dict_obj_name ||
              ' Contact Your Database Administrator ' ||
              'For Dropping This User !');
    END IF;
END;
/

 

Der Trigger läßt sich noch erweitern. So kann eine Datenbanktabelle genutzt werden, um eine flexible Liste an Datenbankbenutzern zu pflegen, die mittels Trigger geschützt werden sollen. Das Prinzip bleibt das gleiche, nur wird anstelle der "fest verdrahteten" Liste ein Datenbank-Cursor genutzt.