当前位置: 首页 > 工具软件 > wallet-core > 使用案例 >

wallet 使用出错解答

刘翔宇
2023-12-01


第一种错误:不能建立WALLET
现象:
15:11:53 SYS> alter system set encryption key authenticated by "topsecrect" ;
alter system set encryption key authenticated by "topsecrect"
*
ERROR at line 1:
ORA-28368: cannot auto-create wallet
原因:缺少相关路径,默认位置是 $oracle_baseadmin$ora_SIDwallet,
可能通过SQLNET.ORA 加入相关参数修改。
ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=D:oradatawallet)))

第一种错误:不能打开WALLET
现象:
15:36:33 SYS> alter system set encryption key authenticated by "topsecrect" ;
alter system set encryption key authenticated by "topsecrect"
*
ERROR at line 1:
ORA-28353: failed to open wallet
原因:已经存在了一个旧的WALLET文件,因此如果要建立新的WALLET,须先重命名或删除旧的WALLET。

---解决以上两个小问题后,就可以成功建立WALLET了
15:48:54 SYS> alter system set encryption key authenticated by "topsecrect" ;

System altered.

---- 补充, 不能创建WALLET的第三种原因:

the Listener is not start . So you maybe start the TNS listener BEFORE create a wallet. Becuase SQLNET.ORA file is a network security relation configuration file which rely on the TNS network.

[@more@]

附:相关参考资料:


概念:
1, wallet 是数据库级别的,也就是说,在一个会话中打开后,所有的会话都可以使用wallet的TDE属性建立加密字段,和RMAN备份加密了。一但建立后,默认就打开了。关掉之后,就无法建立和访问加密的列和备份数据了。
2,对于RMAN备份时加密的备份集,恢复时,仍需要打开WALLET的。这对异机(异地)恢复来说会有障碍。所以异机恢复
最好用密码加密:
3, 注意:ORACLE 10g 没有锁定WALLET证书,所以在证书打开的时候仍然可以删除。删除后,当前用户仍然可以查看
加密的字段,但是,关闭WALLET后,再开启就会失败。


可以用如下的方法打开加密备份方式:
1)RMAN> set encryption on identified by 'password' only;
2)RMAN> set encryption on identified by 'password';
3)RMAN> configure encryption for database on;
RMAN> set encryption on; 
3, 最重要的,wallet是一次性的,即便使用相同的密码和文件路径,每次建立的证书都是不一样的,经过试验,
建立包含加密列的表,然后关闭WALLET,并删除WALLET证书文件,然后用相同的密码建立的wallet证书,
再打开WALLET,访问同一张表,系统报错"master key not found".将证书复原重新打开WALLET后恢复正常。
所以证书文件一定要备份。因为它是一次性的。
如果丢失证书文件(或者误删除),即便用相同的密码再生成一次证书也是无效的。一切都晚了。


例子:
在WINDOWS下建立钱夹,以便使用TDE(透明加密).

首先,这个目录默认位置是:$oracle_baseadmin$ora_SIDwallet ( C:oracleproduct10.2.0admincarwallet )

****ORACLE默认情况下不会创建 admincarwallet 这个目录树的,所以要手工的建立,
然后在数据库中设定钱夹密码才能成功,否则,由于没有这个目录,建立钱夹失败。

-- create wallet
alter system set encryption key authenticated by TopSecrect ;

■配置sqlnet.ora,设置加密方式与文件地址:
ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=D:oradatawallet)))

■创建wallet,包括设置密码、生成信任文件、并启动wallet:
SQL> alter system set encryption key authenticated BY "zrp123"; 

然后可以用如下的方式打开或关闭wallet,需要注意的是,以上的命令完成以后,wallet就自动启动了,不需要在启动。
SQL> alter system set wallet open identified by "zrp123";

SQL> alter system set encryption wallet close; 

file:///F:/Encyclopedia/Computer/doc/oracle/经验$/RMAN的备份加密%20-%20daimin's%20BLOG%20-%20CSDN博客.htm


-- use wallet to TDE.
create table accounts
(
acc_no number not null,
first_name varchar2(30) not null,
last_name varchar2(30) not null,
SSN varchar2(9) ENCRYPT USING 'AES128', --- tde on column.
acc_type varchar2(1) not null,
folio_id number ENCRYPT USING 'AES128',
sub_acc_type varchar2(30),
acc_open_dt date not null,
acc_mod_dt date,
acc_mgr_id number
);

-- TDE on external Table.
create table account_ext
organization external
(
type oracle_datapump
default directory dump_dir
location ('accounts_1_ext.dmp',
'accounts_2_ext.dmp',
'accounts_3_ext.dmp',
'accounts_4_ext.dmp')
)
parallel 4
as
select
ACC_NO,
FIRST_NAME,
LAST_NAME,
SSN ENCRYPT IDENTIFIED BY "topSecret",
ACC_TYPE,
FOLIO_ID ENCRYPT IDENTIFIED BY "topSecret",
SUB_ACC_TYPE,
ACC_OPEN_DT,
ACC_MOD_DT
from accounts;

--- views:

v$wallet
dba_encrypted_columns
all_encrypted_columns
user_encrypted_columns

---reference:

http://bbs.erp100.com/thread-33331-1-1.html

---11G new feature to wallet:

in oracle database 11G ,when you want to close a wallet , maybe you should supply the password . The command like :

alter system set wallet close identified by "password" ;

-- but in oracle 10.2G you just issue the following :

alter system set wallet close ;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/350519/viewspace-1034644/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/350519/viewspace-1034644/

 类似资料: