Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.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 是否可以删除';被遗忘的权利';删除用户记录?_Sql_Referential Integrity - Fatal编程技术网

Sql 是否可以删除';被遗忘的权利';删除用户记录?

Sql 是否可以删除';被遗忘的权利';删除用户记录?,sql,referential-integrity,Sql,Referential Integrity,我目前正在审查一个数据库设计,为了处理删除用户记录的问题,为了处理DPA和EU GDPR遗忘权等要求,建议不要在用户记录和“相关”表(如事务、通信事件等)之间强制执行引用完整性。,这样,在请求时可以删除用户记录,但相关表(使用非标识键/序列号)中的记录将保持不变 因此,在我回过头来展开接下来的“讨论”之前,我想知道是否有人认为在这种情况下删除或不删除引用完整性是可以接受的,或者是否应该使用其他方法,例如屏蔽用户详细信息,或者将用户记录更改为占位符记录,以显示事务与经过编辑的用户相关 欢迎所有想法

我目前正在审查一个数据库设计,为了处理删除用户记录的问题,为了处理DPA和EU GDPR遗忘权等要求,建议不要在用户记录和“相关”表(如事务、通信事件等)之间强制执行引用完整性。,这样,在请求时可以删除用户记录,但相关表(使用非标识键/序列号)中的记录将保持不变

因此,在我回过头来展开接下来的“讨论”之前,我想知道是否有人认为在这种情况下删除或不删除引用完整性是可以接受的,或者是否应该使用其他方法,例如屏蔽用户详细信息,或者将用户记录更改为占位符记录,以显示事务与经过编辑的用户相关


欢迎所有想法……

这是一个复杂的主题,超出了引用完整性约束

我对欧盟隐私限制(我强调我不是律师)的理解是,这些限制涉及个人身份信息,而不是与业务相关的“匿名”关系。例如,我认为你仍然可以将一个被删除的用户在其活动期间计算为“活动”;你就是不知道他们是谁

我的方法是将所有PII数据放在一个表/数据库中。当用户希望被遗忘时,我会更新记录以删除PII。所有外键关系都正常。您只是缺少名称、地址、电子邮件地址以及其他被视为PII的内容

仅仅识别PII是非常棘手的,因为电子邮件地址和用户名等可以嵌入到最不寻常的地方(URL是一个显而易见的地方,但也可能有其他地方)

我不建议从所有数据库中删除此人的所有痕迹。然后,您的报告将不再平衡。哦,我们的报告说当时我们有1000000个客户,但我们只能找到其中的99.99万个。让我们浪费很多人的精力去弄清楚到底发生了什么


我的建议是:小心。这是一个漫长的过程,并相应地为您的组织设定期望。

请查看您所在行业的保留法律。人们有权被遗忘,但企业也有法律义务将某些记录保留一段时间

在这一点上,我不清楚是哪一条法规推翻了另一条法规,所以我的建议是你请一位法律专家来澄清此事

从技术角度来看,您的应用程序可能需要与私有数据相关的业务数据,因此一个好方法是将记录标记为已遗忘,并用生成的数据替换私有数据。这样,您的应用程序将保持相同的行为方式,但私有信息将消失

这是一种简单的方法,可以应用于许多遗留应用程序,甚至可以作为一个过程进行自动化


您必须注意的唯一一件事是备份,因为如果必须从备份中还原数据,您所做的更改可能会被还原。保留一个单独的表,表中的键指向需要忘记的记录,这样,如果备份覆盖了最新的更改,您可以再次使用自动化脚本删除那些希望忘记的内容。

我不熟悉该定律,但如果可能,我希望在用户表中使用一个标志,表示“忘记此用户”这样,用户就不会出现在正常处理中,但仍然可以进行某些内部处理,例如,哦,遵守传票等。@TommCatt。不幸的是,这对欧盟法律来说绝对不够。