oracleWallet的使用(九)

2015-07-24 07:31:46 · 作者: · 浏览: 14

ORA-28365: wallet is not open

Failing sql is:

CREATE TABLE "SCOTT"."T18" ("C1" VARCHAR2(1 BYTE) ENCRYPT USING 'AES192' 'SHA-1', "C2" VARCHAR2(2 BYTE)) SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 8388608 NEXT 8388608 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "TS_

Job "SCOTT"."SYS_IMPORT_TABLE_01" completed with 1 error(s) at 21:24:04

针对实验场景的结果归纳如下:

源库expdp时的encryption wallet状态

能否正常导出加密表

目标库impdp时的encryption wallet状态

Expdp参数Encryption_mode取值

Expdp参数Encryption取值

导入结果

Open

Open

正常

Open

Close

失败

Close

Open

仅表结构

Close

Close

失败

Open

Open

password

ENCRYPTED_COLUMNS_ONLY

正常

Open

Close

password

ENCRYPTED_COLUMNS_ONLY

失败

Close

-

password

ENCRYPTED_COLUMNS_ONLY

-

Open

Open

transparent

ALL

失败

Open

Open

password

ALL

正常

Open

Close

transparent

ALL

失败

Open

Close

password

ALL

失败

Close

-

transparent

ALL

-

Close

open

password

All

仅表结构

Close

Close

password

All

失败

总结:

含有加密列的表进行导出、导入时:

1、 源库上执行导出操作时encryption wallet只有处于open状态才能导出完整的内容,如果是close的情况下一般会把表结构导出(但encryption= ENCRYPTED_COLUMNS_ONLY和encryption_mode=transparent两种情况除外,这两种情况连表结构都不会导出,直接报错退出)

2、目标库执行导入操作时,需要先对dumpfile文件进行解密(如果expdp出来的时候进行了加密),再用自己的masterkey重新对表进行加密,这两个步骤中任意一个有问题都会引起导入失败

3、如果安全上允许建议启用auto login encryption wallet,数据库重启后会自动open