Entwickler-Ecke
Datenbanken (inkl. ADO.NET) - Datenbankzugriff mit mehreren Applikationsbenutzern
timo12 - Mo 14.12.09 08:51
Titel: Datenbankzugriff mit mehreren Applikationsbenutzern
Hallo,
ich habe eine Applikation die mit eigenen Benutzer arbeitet. Die Benutzer werden in der DB (mssql) gespeichert. Nun möchte ich aber auch ein Logging haben, bei dem ich sehen kann welcher Benutzer was verändert hat.
Wenn ich jeden Applikationsnutzer auf der DB anlegen (was ich sehr umständlich, fehleranfällig und zeitraubend empfinde) kann ich das ja relativ einfach über Trigger auf den Tabellen realisieren, da ich ja den Benutzer habe.
Wenn ich aber aus der Applikation immer nur mit einem SQL-User für alle Nutzer mich an der DB anmelde, wie mache ich das dann? Da weiß der Trigger ja nichts von meinem Benutzernamen in der Applikation. Kann ich der SQLConnection nicht irgend einen Wert mitgeben, der den User angibt, die der Trigger auselesen kann?
Gruß Timo
Kha - Mo 14.12.09 19:09
Wenn es mit Triggern nicht funktioniert, dann lass die DB doch ganz außen vor und logge stattdessen selbst an allen entsprechenden Stellen im Data Access Layer. Je nachdem, wie der aussieht oder überhaupt existiert, dürfte das ziemlich einfach oder äußerst komplex werden ;) .
CurdledMilk - Mo 18.01.10 16:30
Wie
Kha schon geschrieben hat kann das sehr viel arbeit machen =) Ein nützliches "tool" zum loggen ist log4net
http://code-inside.de/blog/2009/05/08/howto-logging-mit-log4net/
Wenn du es trotzdem auf der Datenbank machen willst musst du bei jedem vorgang den es zu loggen gilt einen "nutzername" parameter mit schicken (z.B. bei allen Prozeduren die ein Insert oder Update machen). Dann kannst du dir eine Tabelle machen die folgenden aufbau hat:
LogID - Int
Zeit - Datetime
Nutzername - varchar(n)
Prozedurname - varchar(n)
Parameter - varchar(n) = dort schreibst du dann sowas wie "parameter1 = wert1, parameter2 = wert2, ...") rein
darauf kannst du dann auch schön auswertungen betreiben
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!