Sie a system trigger auf dem create user
DDL Basis verwenden könnten (aber nicht ein DML-Trigger auf der dba_users
Ansicht - man kann das sowieso nicht, aber denken Sie nicht einmal zu versuchen, alles zu tun, basierend auf den Daten-Wörterbuch). Aber Sie haben wirklich keine Möglichkeit, um zu wissen, ob der Benutzer, der erstellt wird, tatsächlich ein Anwendungsbenutzer ist - Sie würden davon ausgehen, dass jeder zur Datenbank hinzugefügte Benutzer nur mit Ihrer Anwendung in Verbindung bringen könnte.
Da Sie sowieso andere Schritte ausführen müssen - wie das Gewähren von Rollen und/oder Privilegien, das Hinzufügen anderer Anwendungssicherheitsdaten usw., ist es wahrscheinlich sinnvoller, die Tabelleneinfügung manuell durchzuführen.
Es könnte sogar sinnvoller sein, den gesamten Code zur Benutzererstellung in eine gespeicherte (und wahrscheinlich gepackte) Prozedur zu schreiben, und dies nur über JDBC aufzurufen. Der Nachteil davon ist, dass die create user
und jede andere DDL innerhalb der Prozedur als dynamisches SQL ausgeführt werden müssen. Jeder Ihrer eigenen Tabelleneinfügungen wäre jedoch zusammen, und Sie müssten nur diesen einzelnen JDBC-Aufruf ausführen.
Sie können auch andere Verfahren zum Ändern und Löschen von Benutzern haben.
Etwas zu beachten, wie auch immer Sie es tun, ist, dass DDL implizit festlegt. Nicht unbedingt ein Problem, nur etwas zu beachten, so dass Sie die Schritte in einer wiederherstellbaren Weise bestellen können.
Dank :) Gab eine klare Idee –