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