Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 恢复时态表数据库是否也会将历史表恢复到早期状态?_Sql Server - Fatal编程技术网

Sql server 恢复时态表数据库是否也会将历史表恢复到早期状态?

Sql server 恢复时态表数据库是否也会将历史表恢复到早期状态?,sql-server,Sql Server,通常审计是通过触发器完成的,但是我已经为我的数据库创建了时态表,所以我可以进行数据取证和审计。我还有一个审计要求,也就是说,如果要将数据库恢复到早期状态,审计数据(历史记录表)需要保持完整,只需要恢复原始表。无论恢复点如何,历史记录表都保持不变 实现这一点的一种方法是关闭系统版本控制,然后恢复原始表,然后再次打开系统版本控制。对于每个表来说,这似乎都是一项非常繁忙的任务,因为我有大约500-1000个表需要审核 还有一个问题,如果时态表不适合审计,那么我应该使用传统的触发器进行数据审计吗?听起来

通常审计是通过触发器完成的,但是我已经为我的数据库创建了时态表,所以我可以进行数据取证和审计。我还有一个审计要求,也就是说,如果要将数据库恢复到早期状态,审计数据(历史记录表)需要保持完整,只需要恢复原始表。无论恢复点如何,历史记录表都保持不变

实现这一点的一种方法是关闭系统版本控制,然后恢复原始表,然后再次打开系统版本控制。对于每个表来说,这似乎都是一项非常繁忙的任务,因为我有大约500-1000个表需要审核


还有一个问题,如果时态表不适合审计,那么我应该使用传统的触发器进行数据审计吗?

听起来有点不合逻辑。如果您将数据恢复到以前的状态,那么在此时间之后发生的任何事情都将被销毁,不再存在。那么,为什么您希望保留对现在已不存在的更改的审计跟踪?实际上,这些变化并没有发生,所以为什么要对它们进行记录呢?但是,如果你真的想这么做,我能想到的最简单的方法就是将审计数据存储在一个单独的数据库中(为了获得额外的弹性,可能存储在另一台服务器上)。然后,如果还原主数据库,则不会影响audit one中的数据。如果有人将数据库还原到较早的状态,请让day提前5天。在这5天内发生的任何交易也会恢复。然而,这种恢复是为了避免税收和欺诈。除非我们有审计跟踪,否则人们不会知道。是的,我知道如果我将审计数据存储在一个单独的数据库中,我可以实现这一点,但在我的例子中,我使用的是时态表。我不认为历史记录表可以保存在不同的数据库中,“然而,恢复是为了避免税收和欺诈”。谁会做这样的修复?当然,您有变更控制流程,只有少数经批准、可信任的人员能够进行此类恢复?如果这个欺诈者拥有足够的访问权限和权限,可以恢复数据库,那么即使您最初采取了保留审计跟踪的步骤,如何阻止他们删除审计跟踪呢?在您担心技术问题之前,需要从业务角度对您的需求进行更多的思考。