1
17
你期望这张桌子的书写和阅读量是多少? 我使用了一个审计表,表、列、oldValue、newValue、用户和changeDateTime的列都是通用的,足以处理数据库中的任何其他更改,虽然有很多数据写入了该表,但该数据的报告足够稀疏,可以在一天中的低使用时间段运行。 补充: 如果数据量与报告量存在问题,则可以将审计表复制到只读数据库服务器,从而允许您在必要时运行报告,而不会使主服务器陷入工作困境。 |
2
6
我们用两张桌子设计这个。 其中一个表包含有关事务的数据(数据库、表名、架构、列、触发事务的应用程序、启动事务的登录的主机名、日期、受影响的行数以及更多)。 第二个表只用于存储数据更改,以便在需要时撤消更改并报告旧/新值。 另一种选择是为此使用第三方工具,例如 ApexSQL Audit 或者更改SQL Server中的数据捕获功能。 |
3
2
我发现这两个链接很有用:
使用clr和单审计表。
为每个被审计的表使用触发器和单独的审计表。
|
4
1
是否有内置的审计包?Oracle有一个很好的包,它甚至可以将审计更改发送到一个单独的服务器,而不需要任何修改SQL的坏人访问。 他们的例子太棒了…它显示了如何警告任何修改审计表的人。 |
5
1
OmniAudit 可能是一个很好的解决方案。我以前从未使用过它,因为我很乐意编写自己的审计程序,但听起来不错。 |
6
1
我使用格雷格在他的 answer 并使用从表触发器调用的存储过程填充审计表。 |
Community wiki · SQL语法新手 1 年前 |
KateMak · 是否将多行中的多列与唯一id组合? 1 年前 |
Karuna · SQL中列内的筛选器[重复] 1 年前 |
Irvan Affandy · 为另一个选择选择声明的键 1 年前 |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |