问题标签 [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 投票
2 回答
2557 浏览

sql - SQL:如何最好地查询历史表以创建特定日期的快照概览

我对 SQL 和数据库结构比较陌生,并且对解决此问题的最佳方法有疑问。

我有对象的历史变化数据,有时需要将其转换为特定日期的快照。

数据示例:

我希望能够在任何给定日期创建所有对象的完整概览的快照。例如:

我创建了以下 SQL 查询来创建这些表。但我想知道这是否是最“有效”的方法?实际上我的表非常大,有时每个对象类型有 200K-300K 唯一对象,每天有几千次更新(不是每个对象,但每天只有几千行添加到历史表中,所以它的大小正在增长迅速地)。

SQL查询:

之后我得到这个例如:

我删除了最后两列,因为它们是重复的,以获得我需要的东西。同样,这可行,但我想知道这是否是最好的方法?

我正在使用 Azure SQL DB。

0 投票
1 回答
1098 浏览

java - Hibernate Enver:@AuditJoinTable 行丢失

给定一个由 Envers 审计的实体,其中包含一个集合。

实体 A

实体 B

根据他们的文档 ,Envers 将添加和删除的审计信息存储到这些 AuditJoinTables (A_B_AUDIT)。但不幸的是,这不起作用,并且表中的行丢失了。

当我运行我的项目时,会创建以下表格:

A_AUDIT

B_AUDIT

A_B_AUDIT

我有单独的控制器来持久化 A 对象和 B 对象。当我尝试使用 aId 和 A 保存 B 时,audit_table ( A_B_AUDIT ) 不会更新,但更新版本的B_AUDIT会更新。

有人可以让我知道我在这里缺少什么。

谢谢 !!

Hibernate Enver 版本:5.1.4.Final

0 投票
0 回答
468 浏览

sql-server - 如果已删除,则触发触发器。列 <> 插入。列

这类似于SQL Server 2008 中比较删除和插入的表,但结果不是我想要的。

如果特定列发生更改,我确实希望触发器触发,但是我们拥有的程序会删除所有信息并在每次保存时重新插入所有新信息。没有简单的更新。

我想写入审计表,但前提是该特定列在保存后发生更改。

这不起作用,因为它会为所有内容返回 NULL。我知道如果每次都将所有内容都转储到审计表中,我可以将其全部整理出来,但我真的想要一组更干净的数据并希望将其用于其他处理。

0 投票
1 回答
62 浏览

sql-server - Track the changes of a few columns in an existing table leveraging primary keys?

I'm currently trying to track the changes of a few columns (let's call them col1 & col2) in a SQL Server table. The table is not being "updated/inserted/deleted" over time; new records are just being added to it (please see below 10/01 vs 11/01).

My end-goal would be to run a SQL query or stored procedure that would highlight the changes overtime using primary keys following the framework:

e.g.

Original table:

Output:

Any help appreciated.

0 投票
1 回答
624 浏览

ssis - SSIS 使用 For Each 循环容器加载 .csv 平面文件:执行 SQL 任务表达式以使用行数填充审计表

我正在使用 SSIS (Visual Studio 2017) 将许多 .csv 文件加载到 SQL Server 表中。

我正在使用 For Each 循环容器。我有两个用户变量 - FileName (string) 和 RowCnt (int)

我开发了一个审计表 (dbo.FEfiles) 来跟踪每个加载的文件以及每个文件中的记录数。

审计表有两列:

1) 文件名(varchar(20)

2) 行数(int)

在 For Each 循环容器内设置数据流任务后,我有一个连接到我的审计表的执行 SQL 任务。

在这个执行 SQL 任务中,在表达式选项卡中,在 SQLStatementSource 下,我有以下表达式来单独获取文件名:

"插入到 dbo.FEfiles (文件名) SELECT '" + @[用户::文件名] + "'"

当我评估表达式时,这会正确解析,我得到:

插入到 dbo.FEfiles(文件名)选择“文件名.CSV”

现在,如何为具有整数数据类型的 RowCnt 添加变量?

我尝试了许多选项,例如以下选项:

"插入到 dbo.FEfiles (FileName,RowCount) SELECT '" + @[User::Filename] + "', + (DT_WSTR, 12) @[User::RowCnt] "

当我评估表达式时,我得到以下信息:

插入 dbo.FEfiles (FileName,RowCount) SELECT 'filename.CSV', + (DT_WSTR, 12) @[User::RowCnt]

我需要改为: INSERT INTO dbo.FEfiles (FileName,RowCount) SELECT 'filename.CSV', 0

你能帮我找到正确的表达方式吗?

我什至看过这个视频,但无法弄清楚:

https://www.youtube.com/watch?v=Um7tDy9jZRs

在此处输入图像描述

0 投票
0 回答
1677 浏览

java - @CreatedDate 不起作用,但 @UpdatedDate 正在为第一次保存工作

我尝试使用@CreatedDate 和@LastModifiedDate。虽然 @LastModifiedDate 工作正常,但 @CreatedDate 不是。

我在主应用程序配置文件中添加了@EnableMongoAuditing。

主应用程序.java

评论.java

评论DAO.java

控制器.java

结果是

0 投票
0 回答
550 浏览

java - 如何在关系数据库表中实现默克尔树数据来验证数据库表中的记录

我有一个 REST 服务,它将审计记录插入到数据库中,比如 MySQL。我必须以这样一种方式实现 merkle 树,即每当服务在数据库中插入记录时,它应该验证表记录并插入数据。或者,如果我们得到记录的 id,我们可以检查记录是否有效。

我使用过这个 merkle 树实现

https://github.com/SimoneStefani/merkle-tree-java/blob/master/src/test/java/NodeTest.java

需求是如何设计一个存储默克尔树的数据库。每次插入时,我们都需要添加一个叶子,整个树都会改变。如何维护数据库记录。我想实现Single Table authenticationLevel Based Authentication Table

0 投票
2 回答
113 浏览

tsql - 用于填充审计表的基本 T-SQL 触发器

阅读此页面后,我构建了几个表和一个触发器。这个想法是,当对第一个表执行or时INSERT,所操作的数据将插入到第二个审计表中。UPDATEDELETEMattMattAudit

触发器一定失败了,我不知道为什么;证据是审计表中没有任何条目,尽管CREATE TRIGGER后续ALTER TRIGGER语句成功完成。

主表Matt

审核表MattAudit

触发马特:

下面的插入语句将向表中插入行,Matt但表中不显示任何内容MattAudit

我在触发器中遗漏了什么或出错了?

0 投票
1 回答
486 浏览

c# - EF2.2 Core 2.2 审计返回相同的旧值和新值如何解决?

我正在尝试首先使用 EF 2.2 代码在我的 .net 核心(2.2)中实现审核表。我的意图是记录在我遵循此博客文章实施的实体中所做的所有更改。一切似乎都很好,但我得到了相同的新旧价值。

请帮我找出我的错误。

这是我的控制器,我只分享其中的一部分

以及来自我的上下文类的审计跟踪代码[此代码来自该博客文章] 在案例 EntityState.Modified 的 switch 案例中:我得到的 property.OriginalValue 和 property.CurrentValue 的值相同;

0 投票
2 回答
496 浏览

java - 将带有 java envers 的审计表移动到新的数据库实例

我有一个 Mysql 数据库,模式名称为“myschema”。这个模式有表,其中一些表是审计表。这是我对我的 java 项目的依赖。

现在我想在我的当前数据库上删除这个审计表,并将它们更多地放在一个单独的实例上,并带有一个新的分支。

如何才能做到这一点?任何建议,提前谢谢你