【发布时间】:2020-12-16 13:44:56
【问题描述】:
我正在尝试以不损害参照完整性的方式屏蔽数据。
我的表客户有这个数据:
客户表
Customer_ID | Customer_Name | Address | Phone | Product_ID
143 | Mandy Rutter | 2465 Crim Lane. Shawneetown , New York | 718-530-0536 | 995
142 | Rich Raymond | 2150 Linda Street ,Eagleville ,Pennsylvania | 267-902-9185 | 876
产品表
Product_Seq | Product_Name
995 | T-Shirt
876 | Blazer
现在我想屏蔽客户表中的 Product_ID(比如说)。当我屏蔽它时,转换是 995 => xyz 和 876 = > pqr
现在应该对 Product 表应用相同的屏蔽,否则我不会知道特定 customer_id 的 product_Name。
我尝试使用基于 digest 库的解决方案。如果我屏蔽字母数字,它可以工作,但是对于整数它不适用。
对于屏蔽/匿名,它使用以下代码:
anonymize <- function(x, algo="crc32"){
unq_hashes <- vapply(unique(x), function(object) digest(object, algo=algo), FUN.VALUE="", USE.NAMES=TRUE)
unname(unq_hashes[x])
}
你能告诉我这是为什么吗?是否有任何最近的屏蔽包可以在这样做时保持引用完整性?
我想到的另一个包是anonymizer,但它看起来只将几列视为敏感列,并且在屏蔽时将数字转换为字母数字。
我正在尝试从一个 DBMS 系统(一些相关的表)复制数据,将某些列上的数据匿名化,同时保持关系并放入其他 DBMS 系统。
【问题讨论】:
-
在我的系统上,
anonymize(1L)-->"c0fd381e"和anonymize(1)(数字) -->"39b528ae"。 "for integers it NA" 是什么意思?
标签: r data-masking anonymize