暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 如何在通过Datapump导入数据库链接期间屏蔽 (重新映射) 数据?

askTom 2017-08-08
719

问题描述

嗨,汤姆

我有一个数据屏蔽 (remp_data) 的问题。

当我使用dbms_datapump从源数据库导入表时,似乎必须在导入数据库中存在用于屏蔽数据的软件包。
这似乎违背了我所读到的关于数据掩蔽的所有内容,其中掩蔽发生在源数据库上,因此敏感数据不会离开源数据库。

简短的例子:

DB1 (源数据库,包含表SCOTT.EMP)
-----------------------------------------
连接系统/管理器1 @ db1

创建或替换软件包系统。pck

函数虚拟 (varchar2中的val) 返回varchar2;
结束pck;
/

创建或替换封装体系统。pck

函数虚拟 (varchar2中的val) 返回varchar2

开始
返回 'X';
结束假人;
结束pck;
/

Th是 package must be used for scrambling the data.

DB2 (导入数据库)
-----------------------------------------
连接系统/管理器1 @ db2

创建数据库链接db1连接到由manager1使用 'db1' 标识的系统;

声明
h1号;
l_status Varchar2(2000);
开始
h1 := dbms_datapump.open
(操作 => '导入'
,job_mode => '模式'
,远程链接 => 'db1'
,job_name => 'remap_data_test'
,版本 => '兼容'
);
dbms_datapump.add_file
(手柄 => h1
,文件名 => 'REMAP_DATA_TEST.log'
,目录 => '数据 _ 泵 _ 目录'
,文件类型 => DBMS_DATAPUMP.ku $ _ 文件 _ 类型 _ 日志 _ 文件
);
dbms_datapump.metadata_filter
(手柄 => h1
,名称 => 'schema_expr'
,值 => q' | = 'SCOTT' |'
);
dbms_datapump.data_remap
(手柄 => h1
,名称 => '列 _ 函数'
,table_name => '清空'
,column => 'ENAME'
,函数 => 'SYSTEM.PCK.DUMMY'
,schema => 'SCOTT'
);
dbms_datapump.start_job (h1,cluster_ok => 0);
--
--
dbms_datapump.wait_for_job
(手柄 => h1
,job_state => l_status);
--
dbms_output.put_line ( 'Fin是hed with status = '||l_status );
结束;
/

ORA-39001: 参数值无效
ORA-06512: 在 “SYS.DBMS_SYS_ERROR”,第79行
ORA-06512: 在 “SYS.DBMS_DATAPUMP”,第3507行
ORA-06512: 在 “SYS.DBMS_DATAPUMP”,第4309行
ORA-06512: 在第23行

但是,如果我在DB2上创建SYSTEM.PCK包,则表将从DB1传输到DB2,并且EMP中的列ENAME仅包含值 “X”。

Th是 是 a big 是sue, as we cannot have the sensitive data leave over production database "DB1".

Can You help, have I m是sed anything ?

Br,

专家解答

您是否有任何原因无法在本地进行导出并重新映射数据?

SQL> create or replace
  2  package scott.pkg is
  3    function randomizer(c number) return number;
  4  end;
  5  /

Package created.

SQL>
SQL> create or replace
  2  package body scott.pkg is
  3  function randomizer(c number) return number is
  4  begin
  5    return trunc(dbms_random.value(1,1000));
  6  end;
  7  end;
  8  /

Package body created.


C:\>expdp scott/tiger directory=TEMP dumpfile=scott_mask logfile=scott_mask.log remap_data=emp.empno:pkg.randomizer

Export: Release 12.2.0.1.0 - Production on Thu Aug 10 12:31:59 2017

Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
Starting "SCOTT"."SYS_EXPORT_SCHEMA_01":  scott/******** directory=TEMP dumpfile=scott_mask logfile=scott_mask.log remap_data=emp.empno:pkg.randomizer
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Processing object type SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type SCHEMA_EXPORT/STATISTICS/MARKER
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/SYNONYM/SYNONYM
Processing object type SCHEMA_EXPORT/SEQUENCE/SEQUENCE
Processing object type SCHEMA_EXPORT/SEQUENCE/GRANT/OWNER_GRANT/OBJECT_GRANT
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT
Processing object type SCHEMA_EXPORT/TABLE/COMMENT
Processing object type SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC
Processing object type SCHEMA_EXPORT/FUNCTION/FUNCTION
Processing object type SCHEMA_EXPORT/PROCEDURE/PROCEDURE
Processing object type SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC
Processing object type SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION
Processing object type SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
Processing object type SCHEMA_EXPORT/VIEW/VIEW
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
. . exported "SCOTT"."EMP$"                              8.796 KB      15 rows
. . exported "SCOTT"."EMP"                               8.773 KB      14 rows
. . exported "SCOTT"."DEPT"                              6.023 KB       4 rows
. . exported "SCOTT"."SALGRADE"                          5.953 KB       5 rows
. . exported "SCOTT"."BONUS"                                 0 KB       0 rows
Master table "SCOTT"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
******************************************************************************
复制


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论