问题标签 [audit-trail]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
3718 浏览

database - 使用拦截器在休眠中使用新值和旧值进行审计跟踪

我可以轻松记录上次修改日期、修改者等。但是,我也需要记录旧值和新值。在拦截器中,我可以在 postflush 开始执行之前触发 select 以获取当前记录的值。然后我可以在这条记录和新记录之间运行一个差异,以查看发生了什么变化并将该信息记录为旧值和新值。有没有更好的办法?

问题是我要修改的对象在引用其他对象时也可能非常大。做差异可能很昂贵。

-谢谢

0 投票
2 回答
1293 浏览

sql - 关于 Sql Server 2008 中更改跟踪的建议

我的客户正在寻找一种方法来对应用程序进行完整的审计跟踪(所有表上历史数据的完整视图)。

除了使用具有表副本或存储字段名称、字段值、修改者、修改者等的老式方法之外,我正在研究使用 Sql Server 2008 更改跟踪。在相同的 msdn
上 找到了一篇How-To 文章

有没有人使用(或做过 POC)Sql Server 2008 更改跟踪功能并发现它值得。另外,如果可能的话,请说明您想要从中得到什么以及您发现/得出的结论。欢迎任何相同的提示。

[编辑]
一个星期了还是没有答案!

0 投票
1 回答
7274 浏览

ruby-on-rails - 如何在 Rails 应用程序中构建审计跟踪

我有一个小的 Rails 应用程序。我想在其中添加审计跟踪。基本上是在添加新用户时。它将在AuditTrailUsers表中插入一行,其中新的 user_id 创建并登录用户的 user_id。

我正在考虑before_save为此使用rails回调。但是,我不确定这是否可行。

想象一下我有 model/Users.rb并且model/AuditTrailUser.rb

我该如何实现insert_audit,以便它接收一个用户 id(登录用户),以便在调用时可以将其传递给 AuditTrailUser AuditTrailUser.create(...)

如果我通过登录用户的用户 ID...那么我将不得不显式调用before_save每个地方...

我是新来的轨道。

0 投票
1 回答
492 浏览

.net - Web 应用程序审计

当应用程序作为系统帐户连接到数据库时,如何审计 Web 应用程序特别是数据库更改?

我想使用一个简单的数据库触发器来写入审计表,但我不确定如何添加已登录的用户而不是实际执行工作的帐户。

我已经阅读了一些关于身份流的文章,但我并不完全理解这个概念。

0 投票
1 回答
2935 浏览

sql-server-2008 - 变更数据捕获或变更跟踪 - 与传统审计跟踪表相同?

在我更深入地研究 Microsoft 文档的深渊之前,我想知道是否有人对更改数据捕获和更改跟踪有经验,是否知道其中一个或两个是否可以用来代替传统的...

“由触发器插入的‘真实表’(原始表的所有字段,加上日期/时间、用户 ID 和 DML 操作字段)的审计跟踪表副本”

...设置数据库表审计跟踪,其中触发器填充审计跟踪表(这都是手动工作)。

MSDN 概述文档从高层次上解释了变更数据捕获和变更跟踪是什么,但对我来说还不够清楚,也没有直接说明这些工具可以用来替换我们的传统审计跟踪表。我经常做。

有任何使用变更数据捕获和变更跟踪经验的人可以为我节省大量时间,或者确认我正在花时间寻找正确的工具吗?我们审计跟踪的关键部分是捕获对表字段(在 INSERT、UPDATE、DELETE 上)的所有更改、发生时间以及执行者。这些更改通常通过审计跟踪报告按时间顺序提供给最终用户。另一个问题是......更改数据捕获或更改跟踪是解决方案,我假设可以像普通表中的数据一样查询这些数据?

编辑:无论时间长短,我都需要一个永久的审计跟踪。我看到变更数据捕获与事务日志有关,所以这对我来说听起来很有限。

0 投票
3 回答
6542 浏览

logging - 审计/日志数据库有哪些好的 NoSQL 和非关系数据库解决方案

什么是适合以下的数据库?我对您在非关系型NoSQL系统方面的经验特别感兴趣。它们对这种用法有什么好处,您使用过并推荐使用哪个系统,还是我应该使用普通的关系数据库(DB2)?

我需要将大量来源的审计跟踪/日志记录类型信息收集到一个集中式服务器,在那里我可以有效地生成报告并检查系统中发生的情况。

通常,审计/记录事件总是包含一些必填字段,例如

  • 全局唯一 ID(生成此事件的程序如何生成)
  • 时间戳
  • 事件类型(即用户登录、发生错误等)
  • 有关源(server1、server2)的一些信息

此外,该事件可能包含 0-N 个键值对,其中值可能高达几千字节的文本。

  • 它必须在 Linux 服务器上运行
  • 它应该适用于大量数据(例如 100GB)
  • 它应该支持某种高效的全文搜索
  • 它应该允许并发读写
  • 添加新事件类型和向新事件添加/删除键值对应该是灵活的。灵活=不需要更改数据库架构,生成事件的应用程序可以根据需要添加新的事件类型/新字段。
  • 对数据库进行查询应该是有效的。用于报告和探索发生的事情。例如:
    • 在某个时间段内发生了多少 type=X 的事件。
    • 获取字段 A 的值为 Y 的所有事件。
    • 获取类型为 X 且字段 A 的值为 1 且字段 B 不是 2 且事件发生在过去 24 小时内的所有事件
0 投票
1 回答
4198 浏览

sql - MySQL db 审计跟踪触发器

我需要跟踪 MySql Db 中某些表的更改(审计跟踪)。我正在尝试实施此处建议的解决方案。

我有一个包含以下列的 AuditLog 表:AuditLogID、TableName、RowPK、FieldName、OldValue、NewValue、TimeStamp。

mysql存储过程如下(执行良好,并创建过程):

对过程的调用如:CALL addLogTrigger('ProductTypes', 'ProductTypeID'); 执行,但不创建任何触发器(见图)。SHOW TRIGGERS 返回空集。

请让我知道可能是什么问题,或者实现此问题的替代方法。

替代文字 http://pssnet.com/~devone/pssops3/testing/callprocedure.png

0 投票
1 回答
1279 浏览

asp.net - 您将如何审核 ASP.NET 成员表,同时记录哪些用户进行了更改?

使用基于触发器的方法来审核日志记录,我正在记录对数据库中的表所做的更改的历史记录。我使用的方法(使用静态 sql 服务器登录)记录哪个用户进行了更改,涉及在每个数据库连接开始时运行一个存储过程。触发器在记录审计行时使用此用户名。(触发器由产品 OmniAudit 提供。)

但是,ASP.NET Membership 表主要通过 Membership API 进行访问。当 Membership API 打开其数据库连接时,我需要传入当前用户的身份。我尝试对 MembershipProvider 进行子类化,但我无法访问底层数据库连接。

看起来这将是一个普遍的问题。有谁知道当 ASP.NET Membership 建立数据库连接时我们可以访问的任何钩子?

0 投票
1 回答
158 浏览

sql-server - 您可以配置 SQL Server 2008 审核以将审核数据保存在被审核的数据库之外的数据库中吗?

我们计划在 SQL Server 2008 中使用新的审计功能。有没有办法配置审计组件以将审计数据插入单独的数据库?

0 投票
4 回答
11011 浏览

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

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

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

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

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

我为这篇长文道歉。基本上,我需要一个审计日志来记录所有数据库更改(包括直接入侵数据库),但同时为我提供从 Web 应用程序进行的那些数据库更改的用户登录信息。

将不胜感激在这方面的任何意见。

非常感谢

谢树