In other words, you're not trying to secure data but rather are interested in auditing. Auditing is one part of an overall security methodology, but you should be clear about what threats you intend to handle, and which ones are out of scope.
With that said, in order to log which user did what, you need to have that information available. The design for this functionality differs between Win and Web scenarios, although you could come up with a unified design if you ignore most of the things that come out of the box with .net.
So, given that you have this information available in your DAL, the question is whether you want your DAL to have to deal with this. You could come up with a design where each user in the system gets a user opened for him in the DB, and the connection you'd open to the DB would use that users credentials in the connection string. THen you could let manage the auditing entirely in the DB. On the other hand, this would have performance implications that may not fit your application's non-functional requirements.
As always, there is no one answer. You need to balance ease of development, maintainability, performance, etc.
Hope that helps.
|