不知道你有没有遇到过开发的需求导一份生产库的数据到测试库,但库表中有敏感信息如手机、身份证号等等等等,如果你全部把真实的数据给他们是不是太不负责人了(当然很多都这么做了),少导列可能会影响测试准确性,最好是用其它掩码覆盖,11g以前做有点麻烦,但刚发现11G提供了这个特性,导出时用一个方法替换指定字段。
SQL*Plus: Release 11.2.0.1.0 Production on 星期二 8月 16 15:38:36 2011
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
sys@ANBOB> conn anbob/anbob
Connected.
anbob@ANBOB> desc testexpdp;
Name Null? Type
-------------------------------------- --------------------------------------------------------
ID NUMBER(38)
NAME VARCHAR2(20)
SEX NUMBER(1)
IDCARD VARCHAR2(18)
anbob@ANBOB> select * from testexpdp;
ID NAME SEX IDCARD
---------- -------------------- ---------- ------------------
1 anbob 1 13053319000101122x
1 weejar 1 11053319000101122x
anbob@ANBOB> create package pck_mask
2 as
3 function mask_idcard(p_in varchar2) return varchar2;
4 end;
5 /
Package created.
anbob@ANBOB> l
1 create or replace package body pck_mask
2 as
3 function mask_idcard(p_in varchar2)
4 return varchar2
5 is
6 begin
7 return dbms_random.string('l',18);
8 end;
9* end;
anbob@ANBOB> /
Package body created.
anbob@ANBOB> col directory_path for a40
anbob@ANBOB> select directory_name,directory_path from all_directories;
DIRECTORY_NAME DIRECTORY_PATH
------------------------------ ----------------------------------------
EXPDIR /backup
XMLDIR /oracle11g/db_1/rdbms/xml
DATA_PUMP_DIR /oracle11g/admin/anbob/dpdump/
ORACLE_OCM_CONFIG_DIR /oracle11g/db_1/ccr/state
anbob@ANBOB> !
[oracle@orazhang oracle11g]$ expdp anbob/anbob tables=testexpdp dumpfile=test.dump directory=expdir remap_data=TESTEXPDP.IDCARD:pck_mask.mask_idcard
Export: Release 11.2.0.1.0 - Production on 星期二 8月 16 15:56:23 2011
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
启动 "ANBOB"."SYS_EXPORT_TABLE_01": anbob/******** tables=testexpdp dumpfile=test.dump directory=expdir remap_data=TESTEXPDP.IDCARD:pck_mask.mask_idcard
正在使用 BLOCKS 方法进行估计...
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 64 KB
处理对象类型 TABLE_EXPORT/TABLE/TABLE
. . 导出了 "ANBOB"."TESTEXPDP" 6.320 KB 2 行
已成功加载/卸载了主表 "ANBOB"."SYS_EXPORT_TABLE_01"
******************************************************************************
ANBOB.SYS_EXPORT_TABLE_01 的转储文件集为:
/backup/test.dump
作业 "ANBOB"."SYS_EXPORT_TABLE_01" 已于 15:56:34 成功完成
[oracle@orazhang oracle11g]$ impdp system/oracle directory=expdir dumpfile=test.dump remap_schema=anbob:weejar
Import: Release 11.2.0.1.0 - Production on 星期二 8月 16 15:57:59 2011
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已成功加载/卸载了主表 "SYSTEM"."SYS_IMPORT_FULL_01"
启动 "SYSTEM"."SYS_IMPORT_FULL_01": system/******** directory=expdir dumpfile=test.dump remap_schema=anbob:weejar
处理对象类型 TABLE_EXPORT/TABLE/TABLE
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
. . 导入了 "WEEJAR"."TESTEXPDP" 6.320 KB 2 行
作业 "SYSTEM"."SYS_IMPORT_FULL_01" 已于 15:58:02 成功完成
[oracle@orazhang oracle11g]$ exit
exit
anbob@ANBOB> conn weejar/weejar
Connected.
weejar@ANBOB> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
TESTEXPDP TABLE
weejar@ANBOB> select * from testexpdp;
ID NAME SEX IDCARD
---------- -------------------- ---------- ------------------
1 anbob 1 fcxfinxadnngrurpoo
1 weejar 1 xozutyaesyfzphuthh复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
请问能不能针对某个用户下所有的表做脱敏?或者是对几十、几百个表批量脱敏
2年前

评论
相关阅读
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1392次阅读
2025-03-13 11:40:53
Oracle RAC ASM 磁盘组满了,无法扩容怎么在线处理?
Lucifer三思而后行
845次阅读
2025-03-17 11:33:53
RAC 19C 删除+新增节点
gh
526次阅读
2025-03-14 15:44:18
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
485次阅读
2025-03-13 14:38:19
Oracle 如何修改 db_unique_name?强迫症福音!
Lucifer三思而后行
385次阅读
2025-03-12 21:27:56
Oracle DataGuard高可用性解决方案详解
孙莹
338次阅读
2025-03-26 23:27:33
墨天轮个人数说知识点合集
JiekeXu
282次阅读
2025-04-01 15:56:03
一键装库脚本3分钟极速部署,传统耗时砍掉95%!
IT邦德
275次阅读
2025-03-10 07:58:44
切换Oracle归档路径后,不能正常删除原归档路径上的归档文件
dbaking
259次阅读
2025-03-19 14:41:51
风口浪尖!诚通证券扩容采购Oracle 793万...
Roger的数据库专栏
258次阅读
2025-03-24 09:42:53
热门文章
移除DataGuard Standby配置导致Primary启动失败
2023-08-17 21257浏览
使用dblink产生的”SELECT /*+ FULL(P) +*/ * FROM XXXXX P ” 解析
2023-06-20 20875浏览
Troubleshooting 'ORA-28041: Authentication protocol internal error' change password 12c R2 DB
2020-04-08 13589浏览
浅谈ORACLE免费数据库Oracle Database XE (Express Edition) 版
2018-10-31 7502浏览
High wait event ‘row cache mutex’ in 12cR2、19c
2020-08-14 5529浏览