sql - SQL 屏蔽查询中的映射字段
问题描述
我正在创建一个视图以从表中提取数据并将该数据加载到将加载到系统中的固定文件中。该视图会将表格列映射到特定格式。
有一列 Account_Number 需要屏蔽,因为该列包含敏感信息。
我屏蔽该值的逻辑是将数字移动到数字行中的下一个位置。
所以,如果数字是 0 则为 1、4 则为 5 等等。我无法在视图本身中提供逻辑。
任何帮助,将不胜感激。
CREATE OR REPLACE FORCE EDITIONABLE VIEW "Schema1"."VW_ActiveTraders" ("FUND", "NAME", "CITY", "ACN") AS
Select
TD_Fund as FUND,
Name as NAME,
City as CITY,
Account_Number as ACN
FROM Trader1 -- Table Name
Account Number
023457456
123456789
012345678
Masked Account Number
134568567
012345678
123456789
请注意,帐号栏有超过 1000 个条目。
解决方案
您可以使用TRANSLATE移动数字
with dt as (
select '023457456' ACN from dual union all
select '123456789' ACN from dual union all
select '012345678' ACN from dual)
select ACN,
TRANSLATE(ACN,'0123456789','1234567890') as ACN_WEAK_MASK
from dt;
ACN ACN_WEAK_
--------- ---------
023457456 134568567
123456789 234567890
012345678 123456789
但请注意,这并不是对敏感信息的真正掩饰。取消屏蔽信息并获取原始帐户 ID非常容易。
一个经常使用的掩码是012345678
gets ******678
。
推荐阅读
- python - 切片未知尺寸的网格
- ruby - 自从我从 aws-sdk v2 更新到 v3 后,任何人都知道为什么此部署失败?
- python - 如何解决 requests.post() 调用分段错误(核心转储)的错误?
- c# - 在 C# 中实现通用数据结构时避免徘徊
- javascript - 检查所有输入标签是否有值
- python - 将数据写入文件的正确方法是什么?
- c# - 无论初始选定的日期值如何使两个 WPF DatePicker-s 以不同的宽度显示?
- pytorch - 在 C++ 中使用 *.pth 模型
- api - 如何在 directus.io 中使用 group by 获取唯一项目
- kotlin - 在kotlin中完成异步功能后如何执行另一个功能?