Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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/4/jquery-ui/2.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,我收到了SQL Server 2017上一个ETL应用程序的新数据库 但是我需要知道ETL软件是否在这个数据库中插入了与GDPR相关的数据 我的第一个想法是使用SQLServer探查器来观察应用程序插入的数据类型 但是如果应用程序插入这样的数据呢 SELECT * INTO [DBO].[TABLENAME] FROM OPENQUERY (OTHERDB, 'SELECT * FROM SourceTable') 还是应用程序使用大容量复制操作将数据插入数据库? 或者可能存在另一种可

我收到了SQL Server 2017上一个ETL应用程序的新数据库

但是我需要知道ETL软件是否在这个数据库中插入了与GDPR相关的数据

我的第一个想法是使用SQLServer探查器来观察应用程序插入的数据类型

但是如果应用程序插入这样的数据呢

SELECT *  
INTO [DBO].[TABLENAME]  
FROM OPENQUERY (OTHERDB, 'SELECT * FROM SourceTable')
还是应用程序使用大容量复制操作将数据插入数据库? 或者可能存在另一种可能性,ETL应用程序可以插入数据,这是我用分析器无法看到的

有人可以回答:问题出在哪里,然后查询所有表

但是,如果应用程序仅缓存该数据库中的数据并立即将其删除,该怎么办

我知道,我可以使用Wireshark嗅探网络流量来实现我的目标,但如果网络流量是用SSL加密的,那又怎么样呢

也许我觉得太复杂了,但如果有人能澄清我的疑问,我将不胜感激


一个有价值的答案可以是:“不用担心,分析器你可以得到所有的数据插入/修改”<强>或<强> >“你是对的,对于分析器,你不能得到所有的数据插入/更改,因为…我认为你要用……工具/方法来实现你的目标”。

您可以考虑实现SQL Server的更改数据捕获功能

您可以考虑实现SQL Server的更改数据捕获功能

您知道这些插入的目标(即它将进入的特定表.列)吗?如果不知道,您如何知道这是一些GDPR敏感数据?一旦你掌握了这些知识,你想用它做什么?掩盖它?加密吗?删除?注意了吗?嗨,Bartosz,不,我对表格一无所知,这个数据库里还有成千上万的表格。如果数据库包含GDPR相关数据,我会告诉客户使用其他DBMS,因为对于此ETL应用程序的其他要求,我无法在MS SQL-Server上兼容GDPR…探查器跟踪绝对不是捕获所有数据的可靠方法,因为如果不能足够快地处理事件,服务器可能会删除事件。这可以通过使用扩展事件和
NO\u EVENT\u LOSS
session选项来“修复”,但这仍然不会改变无法使用事件捕获所有数据的事实。在完全恢复模式下,最好的选择是事务日志本身。这允许在数据库(副本)上进行时间点恢复。也有第三方工具提供读取事务日志,但我没有这方面的经验。您能添加更多上下文吗?仅仅通过观察数据是不可能确定数据是否与GDPR相关的。如果您想遵守,一切都与文档有关。谢谢Jeroen!也许我可以在TLOG中看到数据,我必须试试。很高兴知道,使用Profiler不可能获得所有数据插入/更新!你知道这些插入的目标(即它将进入的特定table.column)吗?如果不知道,你怎么知道这是一些GDPR敏感数据?一旦你掌握了这些知识,你想用它做什么?掩盖它?加密吗?删除?注意了吗?嗨,Bartosz,不,我对表格一无所知,这个数据库里还有成千上万的表格。如果数据库包含GDPR相关数据,我会告诉客户使用其他DBMS,因为对于此ETL应用程序的其他要求,我无法在MS SQL-Server上兼容GDPR…探查器跟踪绝对不是捕获所有数据的可靠方法,因为如果不能足够快地处理事件,服务器可能会删除事件。这可以通过使用扩展事件和
NO\u EVENT\u LOSS
session选项来“修复”,但这仍然不会改变无法使用事件捕获所有数据的事实。在完全恢复模式下,最好的选择是事务日志本身。这允许在数据库(副本)上进行时间点恢复。也有第三方工具提供读取事务日志,但我没有这方面的经验。您能添加更多上下文吗?仅仅通过观察数据是不可能确定数据是否与GDPR相关的。如果您想遵守,一切都与文档有关。谢谢Jeroen!也许我可以在TLOG中看到数据,我必须试试。很高兴知道,使用Profiler不可能获得所有数据插入/更新@弗罗格:为什么不呢?为什么表的数量很重要?如果问题是在所有语句上启用CDC所需的语句数量,那么这就是一个简单的自动化问题:编写一个查询来生成这些语句。我希望它以一种更优雅、更简单的方式存在,因为这是一个重要的项目,管理层会施加压力,我不希望在数据库上做更改时出现问题,这可能会给整个项目带来麻烦…@Froger:为什么不?为什么表的数量很重要?如果问题是在所有语句上启用CDC所需的语句数量,那么这就是一个简单的自动化问题:编写一个查询来生成这些语句。我希望它以一种更优雅、更简单的方式存在,因为这是一个重要的项目,管理层会施加压力,我不希望在数据库上做更改时出现问题,这可能会给整个项目带来麻烦。。。