问题标签 [audit-tables]

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 投票
3 回答
1663 浏览

sql-server - 简单的sql数据审计日志表

我需要在表中记录所有更改。我在 SO 中浏览了许多关于数据审计日志的文章。对我来说,一切似乎都很复杂。

我计划在更新和删除数据之前保留所有表格的副本。这是一个好主意吗?

0 投票
1 回答
964 浏览

java - Java Hibernate Envers UpdateLockingStrategy 警告 HHH000416 On AuditTable

嗨,我们有一台运行 Hibernate 的服务器,这些类使用 envers 进行审计。像这样 :

在 serverstart 有这样的警告:

问题是我们只为审计创建了数据库表,我们没有任何审计类。这些类将在启动时生成,我们还没有找到任何 @audit-Options 来抑制这些警告。警告对我们来说无关紧要,因为只写一次审计条目并且从不更新它,每个类有 5 个警告正在淹没我们的日志。

我们在 java 1.7 中使用 hibernate-envers-4.1.10.Final.jar 和 hibernate-core-4.1.10.Final.jar。

有没有人有同样的问题或知道如何解决它。我们感谢任何帮助。

0 投票
2 回答
69 浏览

sql - SQL查询将审计跟踪输入/输出时间转入位置列表

我有一个用于跟踪物理对象位置的数据库,我们称它们为小部件。它有一个审计跟踪表,用于跟踪小部件何时被放置在某个位置,以及它何时离开某个位置(以及之后它去了哪里)。

所以在概念上它看起来像这样

我希望能够查询在开始日期和结束日期之间位于位置 101 的小部件列表,例如 2013 年 10 月 8 日至 9 日,这应该是小部件 1,而不是小部件 2 或 3。

我不确定如何获得所有这些案例。我可以提取在结束之前移入的小部件列表,以及在开始之前移出的小部件列表,但这也会在小部件 1 离开和返回时消除它。

我想我需要将其转换为带有小部件、位置、进入日期和退出日期的表格,但我不知道该怎么做?

编辑:正如所指出的,我的数据是错误的,我已经更新以将问题排在第 8 到第 9 位(这是第 4 到第 5 位)。因此,小部件 1 是该期间位置 101 中的唯一小部件。

0 投票
1 回答
278 浏览

sql - 是否存在可与另一个 SQL 数据库一起使用的 MongoDB 审计表 API?

MongoDB的审计表API 是否与其他一些 SQL 数据库一起使用,可以被告知自动模仿普通 SQL 表的结构,并在提交结束时触发插入到该表的 MongoDB 表历史记录中?如果是这样,这些类型的 API 通常被称为什么?

0 投票
1 回答
3353 浏览

hibernate - 如何使用休眠环境获取审计表的行数

在审计表中,没有这样的标准可以Criteria.setProjection(Projections.rowCount())用来获取查询的行数。

我们可以使用 AuditQuery 来做类似的事情。但在这种情况下,我找不到如何设置预测。AuditQuery也有一个setProjection方法,但它需要AuditProjection作为参数。我可以做类似的事情setProjection(rowCount)吗?

谢谢

0 投票
0 回答
1213 浏览

spring - Hibernate Envers:AuditQuery 抛出 ClasscastException

我有一个名为Report的基本实体,它带有@Audited注释。envers 将实体的更改正确存储在数据库中,其中我对报告实体 ID 1 进行了许多修订。

我的 DAO 类使用以下代码从审计表中检索所有修订的列表:

此代码片段的最后一行引发以下异常,我似乎无法弄清楚原因:

任何人都可以帮助解释为什么会这样吗?

正在使用的版本

  • 春天 3.2.3
  • 休眠 4.2.8
  • 休眠环境 4.2.8
  • javassist 3.18.1-GA
0 投票
1 回答
213 浏览

java - 从新类中的 AuditCriterion 获取结果

我知道当您执行此代码时:

它返回一个树元素数组。我希望将这 3 个元素数组映射到一个新类中:

}

我知道在标准中简单的选择你可以做类似的事情

它如何应用于休眠环境查询?

0 投票
0 回答
44 浏览

sql-server - SQL 跟踪更改

嗨,我有一个包含以下内容的视图:

该表已更新为:

并且我希望在进行更新/插入时自动将状态更改为 0(可以从 ERP 软件中进行)

0 投票
0 回答
381 浏览

mysql - Grails + MySQL 创建审计表的策略

我们的 grails 应用程序创建了用于存储域对象的普通表。

出于欺诈和监管的目的,必须对关键表进行审计,即每次更改都应与更改人员和时间一起记录。

在以前的项目中,我们创建了一个新的审计模式,并将普通表的副本放入其中,每个表都与普通表相同,除了:

  1. 4 个附加列:userId、IP、DataChanged、Action(更新、删除、插入)
  2. ID 不再唯一
  3. 没有约束,没有PK,没有索引。
  4. 在称为审计的模式中。

在他上。在项目中,Oracle DB 编写了一个复杂的脚本来从普通模式中读取表和列,并在审计模式中创建相应的表/列,然后在普通 DB 表上创建插入/更新/删除触发器。

我们需要为 MySQL 做类似的事情。

为了安全,我们需要在数据库(而不是代码)级别执行此操作。

我们想知道 grails 是否有任何方法可以帮助我们解决这个问题。例如。

  1. 创建一个新的 grails 审计项目,复制(剪切和粘贴)域类,添加额外的列。这至少会自动生成模式。然后我们需要手写触发器,并将它们放在正常项目的 BootStrap 中。
  2. 使用 grails 脚本从主模式中读取表和列元数据,并创建必要的 sql 语句以生成审计模式,并在正常模式表上生成触发器。
  3. 根本不要使用 grails,编写整个脚本以在 grails 之外创建审计表和触发器。不幸的是,我们没有可用的 DBA 或 SQL 脚本专家。
  4. 使用某人已经编写的插件来执行此操作(找不到任何插件)。
  5. 别的东西?

有任何想法吗?其他人做过这样的事情吗?

0 投票
0 回答
487 浏览

oracle - 如何使用 Oracle Fine-Grained Auditing (FGA) 捕获新旧列值

在回答这个(旧)问题Auditing in Oracle时,声称细粒度审计 (FGA) 可以支持捕获新旧列值。但是,没有关于这样做的具体指导。

我已经阅读了 FGA 文档并查看了 DBA_AUDIT_POLICIES 和 DBA_FGA_AUDIT_TRAIL。您似乎可以创建捕获特定列值(条件)和/或解析 SQL_TEXT 和 BIND 变量的策略,但不清楚如何捕获值。

我宁愿不创建自定义审计表。这是在 11gr2(企业)上。