Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.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_Database_Oracle10g - Fatal编程技术网

Sql (数据保护)要屏蔽/替换数据库中的某些数据

Sql (数据保护)要屏蔽/替换数据库中的某些数据,sql,database,oracle10g,Sql,Database,Oracle10g,我正在解决一个问题,在这个问题中,我必须用特定的模式屏蔽/替换(我知道它们都不同)一些数据,如信用卡号、账号、出生日期等。 例如,如果信用卡号为123/456/789,它将在前端显示####/#/# 我想的解决方案是使用regexp_replace函数,它正在工作,但问题是它需要花费很多时间,而且查询非常繁琐,并且为每个模式提供了一个新的列(仅信用卡号和账号需要匹配75个以上的模式。)+未来的模式也会出现 其次,我们是否可以创建一个表,在其中存储所有模式,并使用动态sql查询反映到该表中?(如果

我正在解决一个问题,在这个问题中,我必须用特定的模式屏蔽/替换(我知道它们都不同)一些数据,如信用卡号、账号、出生日期等。 例如,如果信用卡号为123/456/789,它将在前端显示####/#/#

我想的解决方案是使用regexp_replace函数,它正在工作,但问题是它需要花费很多时间,而且查询非常繁琐,并且为每个模式提供了一个新的列(仅信用卡号和账号需要匹配75个以上的模式。)+未来的模式也会出现

其次,我们是否可以创建一个表,在其中存储所有模式,并使用动态sql查询反映到该表中?(如果我们获得了表创建访问权限)(但我不知道如何做到这一点)

第三,我们可以使用过程来屏蔽数据(而不是用模式替换数据),生成随机编号以保护数据(我认为高级成员不会同意这一点)

如果有任何其他最佳解决方案,请分享,我也不知道所有信用卡号码、账号等都存在于一个表中,或者它们存在于多个表中,如果数据存在于多个表中,那么解决方案是什么


需要详细解释……

从设计角度来看,这些数据点应该存储在唯一的列中,例如信用卡号列。这不是这张桌子的结构吗?如果是,为什么还要在查询中包含该列?如果cc编号等包含在其他列中,如果计划使用“前进”,您可能需要花时间重新构建

如果它们存储在同一列中,则继续—依赖replace函数删除敏感信息确实有违反PII的风险。考虑访问数据所需的其他选项,以免由于数据录入错误而泄露机密信息。