Sql server 如何跟踪数据库上的所有数据更改
我收到了SQL Server 2017上一个ETL应用程序的新数据库 但是我需要知道ETL软件是否在这个数据库中插入了与GDPR相关的数据 我的第一个想法是使用SQLServer探查器来观察应用程序插入的数据类型 但是如果应用程序插入这样的数据呢Sql server 如何跟踪数据库上的所有数据更改,sql-server,Sql Server,我收到了SQL Server 2017上一个ETL应用程序的新数据库 但是我需要知道ETL软件是否在这个数据库中插入了与GDPR相关的数据 我的第一个想法是使用SQLServer探查器来观察应用程序插入的数据类型 但是如果应用程序插入这样的数据呢 SELECT * INTO [DBO].[TABLENAME] FROM OPENQUERY (OTHERDB, 'SELECT * FROM SourceTable') 还是应用程序使用大容量复制操作将数据插入数据库? 或者可能存在另一种可
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所需的语句数量,那么这就是一个简单的自动化问题:编写一个查询来生成这些语句。我希望它以一种更优雅、更简单的方式存在,因为这是一个重要的项目,管理层会施加压力,我不希望在数据库上做更改时出现问题,这可能会给整个项目带来麻烦。。。