gpt4 book ai didi

asp.net - 使用 SQL Server 在 Web 应用程序中进行审计跟踪

转载 作者:行者123 更新时间:2023-12-02 06:35:14 25 4
gpt4 key购买 nike

我们正在使用 asp.net 和 sql server 开发一个 Web 应用程序。我们需要对该应用程序进行审核跟踪。据我了解,审计跟踪基本上是针对数据库上的所有插入、更新和删除,对吧?现在解决这个问题的方法是,我在数据库中有一个审计跟踪表,该表在每次插入、更新或删除被触发后填充(在 DAL 中手动编写脚本)。然而,任何从 SQL Management studio 直接触发的数据库更改都不会被记录(出于显而易见的原因:P)。

为了满足这一点,我可以创建一个触发器来处理所有事情。我还做了一些谷歌搜索,发现 SQL Server 有能力进行审计跟踪。然而,使用触发器的问题是我不会获取登录网站的用户信息。我会得到 sql 用户,但我不会对此大惊小怪,我担心网站用户。

我想出的解决方案是a) 从我的 Web 应用程序中获取审计跟踪,并设置触发器。在审核报告中,我仅显示来自 Web 应用程序的审核日志和来自 SQL Server 的审核日志。这种方法的明显问题是:开销。每次数据库更改时写入两组不同的表。

b) 我在每个数据库表上都有一个名为 UserId 的列。然后我创建一个触发器来捕获所有数据库更改。我在更改(插入、更新、删除)的每个表上传递此 userId,并从触发器中获取此 id。明显的挫折:每个表中都有不必要的 userid 列

我对这么长的帖子表示歉意。基本上,我需要一个审核日志来记录所有数据库更改(包括直接破解数据库),但同时为我提供从 Web 应用程序进行的那些数据库更改的用户登录信息。

非常感谢这方面的任何意见。

非常感谢

谢书

最佳答案

通过 SQL 管理工作室或其他方式直接对数据库执行 SQL 查询,对数据库进行合法更改的可能性有多大。我建议假设数据中的所有数据都是通过您的应用程序输入的,并且在您的 BL 层中进行审核。然后,您可以简单地将数据库的访问权限限制为受信任的用户。最终必须有一个或多个用户有权更改数据库模式,如果这些用户想要绕过审核,他们可以简单地禁用触发器或伪造审核跟踪。如果有合法理由对数据库运行直接 SQL 查询,例如从其他系统等不频繁导入数据,那么您可以将此事件限制为受信任的用户,并确保他们的导入脚本正确填充审核表。无论如何,任何会给 DBA 或可信用户带来过多工作量的内容都应该内置到应用程序中。

关于asp.net - 使用 SQL Server 在 Web 应用程序中进行审计跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3235647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com