xes*_*shu 16 sql-server asp.net audit-trail
我们正在使用asp.net和sql server开发一个Web应用程序.我们需要为应用程序执行审计跟踪.据我了解,审计跟踪基本上适用于数据库中的所有插入,更新和删除吗?现在解决这个问题的方法是,我在DB中有一个审计跟踪表,在每次插入,更新或删除之后填充(在DAL中手动编写脚本).但是,不会记录从SQL Management Studio直接触发的任何数据库更改(原因很明显:P).
为了迎合这一点,我可以创建一个触发器,并处理所有事情.我也做了一些谷歌搜索,发现SQL服务器有能力进行审计跟踪.但是,使用触发器的问题是我不会获得登录网站的用户信息.我会得到sql用户,但我没有给出两个hoots,我担心网站用户.
我想出的解决方案是a)从我的Web应用程序中获得审计跟踪并设置触发器.在审计报告中,我只是显示来自Web应用程序的审计日志和来自sql server的审计日志.这种方法明显存在问题:头脑清醒.在每个DB CHANGE上写入两组不同的表.
b)我有一个名为UserId ON EVERY DB TABLE的列.然后我创建一个触发器来捕获所有数据库更改.我在我更改的每个表(插入,更新,删除)上传递此userId,并从触发器获取此id.显而易见的挫折:每个表中不必要的用户ID列
我为长篇文章道歉.基本上我需要一个审计日志,它记录所有数据库更改(包括直接破解到数据库),但同时给我用户登录信息,用于从Web应用程序进行的那些数据库更改.
将欣赏这方面的任何意见.
非常感谢
xeshu
Ben*_*son 12
通过SQL管理工作室或其他方式直接对数据库执行SQL查询,对DB进行合法更改的可能性有多大.我建议假设数据中的所有数据都是通过您的应用程序输入的,并在BL层中进行审核.然后,您可以简单地将对数据库的访问限制为可信用户.最终,必须有一个或多个用户使用permsion来改变数据库模式,如果这些用户想要绕过审计,他们可以简单地禁用触发器或伪造审计跟踪.如果有合理的理由对数据库运行直接SQL查询,例如从其他系统等导入不频繁的数据,那么您可以将此活动限制为受信任的用户,并确保其导入脚本正确填充审计表.
| 归档时间: |
|
| 查看次数: |
9699 次 |
| 最近记录: |