问题标签 [audit-logging]

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 投票
1 回答
115 浏览

sql - 为审计跟踪提取记录

我正在我的应用程序中实施审计跟踪。我遵循了这个创建了只需要审计的表的历史表。

我有一个下表来存储患者信息。

TenantId代表每个租户数据,因为它是一个多租户应用程序

PersonPatient

Id、TenantId、FirstName、LastName、DOB、Mobile、Email、AddedBy、UpdatedBy、IsDeleted

病人

Id、PatientIDentifier、IsOP、CanSendSMS、AddedBy、UpdatedBy、IsDeleted

还有另一张桌子

预约

Id、PatientId、AppointmentDate、DoctorId、价格、AddedBy、UpdatedBy

审计历史表结构

人物历史

AuditId、Id、FirstName、LastName、DOB、AddedBy、UpdatedBy、AuditUserId、AuditDate、Action

这里Action代表A(ADD)/U(update)/D(delete)

已创建相同的结构Patient, Appointment

现在,每当添加/删除/更新发生时,我都会将触发器插入到历史记录表中。

现在我得到了审计历史表中可用的数据。

我必须针对两个要求编写查询。

  1. 获取特定患者的所有记录。我需要使用PatientId. 我们如何编写 SQL 来从给定 id 的同一张表中获取更多记录?UNION or JOIN?

  2. 我需要从中获取所有记录all the HistoryTable for the supplied AuditUser Id

我该如何为此编写查询?

0 投票
2 回答
5892 浏览

c# - 如何从实体框架 6 中的 Auditlog 实体获取 id

我知道那里有几个类似的帖子,但我找不到任何解决此问题的方法。

我想在 Entity Framework 6 中添加、更改或删除实体(软删除)时添加(某种)AudioLog。我已经覆盖了 SaveChanges,因为我只想为添加、修改或删除的 EntityStates 添加日志条目,我在第一次调用 SaveChanges 之前获取了列表。问题是,因为我需要记录已执行的操作,所以我需要检查实体的 EntityState。但是在调用 SaveChanges 之后,所有条目的 EntityState 都未更改。

0 投票
2 回答
279 浏览

sql-server - SQL Server 审核日志 - 复制当前日志文件

如何让 SQL Server 发布当前的审核日志文件并开始一个新的?

我们需要将审计日志文件移动到另一个位置,我们每晚都会这样做。然而,由于几乎没有要记录的活动,文件很少达到创建新文件的大小(根据 MA​​XSIZE 设置)。但是,如果有一个包含内容的文件,我想复制/移动它。由于我们希望新位置是合理的最新位置,因此我想在给定时间移动任何可用的内容,而不是在文件达到 MAXSIZE 设置时移动。

谢谢。

0 投票
1 回答
362 浏览

sql-server-2012 - SQL Server Express 2012。使用分析器创建审计

SQL Server 2012。使用 SQL Server Profiler。如何将跟踪设置为仅显示结果表审核类型详细信息?例如登录的人、用户何时进行 CRUD 查询、日期和时间等。只是为了能够登录并查看谁进行了更改,以防数据库级别发生任何事情。基本上我不想包括所有显示的存储过程。谢谢你。

0 投票
1 回答
752 浏览

ruby - 如何访问 Padrino 模型中的 current_account?

我正在开发一个具有主应用程序和管理应用程序的 Padrino 应用程序。当用户通过会话登录时,我只需运行以下两行即可让他登录。

在 Admin 的任何控制器中使用调试器

在任何模型中使用调试器

我可以访问 current_account 以找出在 Admin 应用程序中登录的用户,但在主应用程序中无法访问此变量。

我要做的是为我的所有模型创建一个 Activity Feed 或 Audit Trail,因此当在任何模型中创建/更新/销毁记录时,会在模型 Activity 中创建一个新记录。话虽如此,我需要访问模型中的 current_account 变量。

我已经搜索了解决方案,并遇到了一个建议:

在 admin/app.rb

在 app/app.rb

它对我不起作用。有没有办法可以在我的模型中访问 c​​urrent_account?

感谢您的任何指导或建议。

0 投票
1 回答
135 浏览

sql - 为什么更新后触发器只触发一次,即使在一行上有 3 个更新也是如此?

我在 db 表 Foo 上有一个 AFTER UPDATE 触发器。每当 Foo 上发生 UPDATE 时,它都会将审计记录插入到审计表中。

有 3 个单独的服务正在运行,有时它们会更新相同的 Foo 记录 - 但不同的字段。

问题是当同一行上有 3 个更新时 - 这似乎几乎同时发生 - 我可以看到只有一个 AFTER UPDATE 触发器被触发。我只看到一个审计记录,而我预计是 3 个。

任何建议为什么会发生这种情况?

0 投票
1 回答
53 浏览

php - 如何获取通知邮件到 wordpress 管理员

当我从 wordpress wp-admin 更新任何内容时,如何向 wordpress 管理员发送通知邮件

0 投票
1 回答
384 浏览

c# - 实体框架:当审计跟踪的外键更改时获取底层实体类型

我目前正在从事一个项目,该项目的要求是记录对实体的每个单独属性的更改。许多实体与查找值类型具有一对多的关系,当这种变化时,我可以跟踪到,即“1”已更改为“2”。我想要完成的是将数字转换为更具可读性的值。

我有下面的代码,我认为它可以工作,但它没有:(

我看过许多讨论使用实体框架进行审计的帖子,但到目前为止我还没有找到任何方法来实现我想要做的事情。我希望这仅仅是因为我忽略了一些东西。

任何帮助表示赞赏。

0 投票
1 回答
773 浏览

session - NHibernate IPreUpdateEventListener 不插入到第二个表

我正在制作一些简单的审计日志功能的原型。我有一个中型实体模型(约 50 个实体),我想在大约 5 或 6 个上实施审计日志记录。最终我也想让它在插入和删除上工作,但现在我只是专注于更新。

问题是,当我从 EventListener 中对我的 auditLog 表执行 session.Save(或 SaveOrUpdate)时,原始对象被正确保存(更新),但我的 AuditLog 对象永远不会被插入。

我认为在 NHibernate 保存生命周期的后期调用事件侦听器Pre和事件侦听器是一个问题,以便会话仍然可以使用。Post

当它在最后一个方法中到达 session.SaveOrUpdate() 时,不会发生错误。不抛出异常。它似乎成功并继续前进。但什么也没有发生。审计日志条目永远不会出现在数据库中。

我能够让它工作的唯一方法是在此方法中创建一个全新的 Session & Transaction ,但这并不理想,因为代码从侦听器方法返回,命中 session.Transaction .Commit() 在我的主应用程序中,如果该事务失败,那么我的审计表中会出现一条孤立的日志消息,说明从未发生过的事情。

我可能会出错的任何指示?

编辑

我还尝试使用基于此线程中的一些评论的事件中的子会话来保存或更新 LogItem。http://ayende.com/blog/3987/nhibernate-ipreupdateeventlistener-ipreinserteventlistener

我的数据库中的日志表中仍然没有出现任何内容。没有错误或异常。

0 投票
1 回答
65 浏览

sql-server - 查找过去、*不是当前*、登录信息

我知道如何查找有关当前会话及其用户的信息(sp_who2、、sp_WhoIsActive...)

如何检索过去的此类信息?我找不到这方面的信息。简单地说,我的问题是:

  • 谁登录了?
  • 从什么时候到什么时候?
  • 他做了什么?
  • (另外:有关进程/资源使用/等待/锁定的信息会很好)

是否记录了这些信息?如果有,如何查询?如果不是,构建此类日志记录的最佳实践是什么?

我使用的是 SQL Server 2008 R2 (SP1) 标准版。

编辑:添加了版本信息和标签。