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

Oracle TDE加密钱包更改密码

askTom 2018-04-16
862

问题描述

要求
我们需要能够更改Oracle TDE加密钱包上的密码,该密码用于加密某些表空间。

这篇常见问题文章指出,这可以用OWM或orapki来完成

http://www.oracle.com/technetwork/database/security/tde-faq-093689.html#A13019

因此,我们使用orapki命令如下:

orapki钱包更改 _ pwd-钱包/Oracle/管理/钱包-旧pwd我的密码1-新pwd我的密码1

之后,我们能够列出钱包的内容如下:

orapki钱包显示器-钱包/Oracle/管理/钱包-pwd我的新密码1

看来密码已成功更改并可以使用。

问题
Oracle数据库实例不再能够打开加密钱包。

重新启动Oracle实例后,如果我们尝试从加密表空间中的表中进行选择,则会收到以下Oracle错误:

第1行的错误:
ORA-28365: 钱包未打开

要打开加密钱包,我们通常在sqlplus中使用以下命令:

ALTER SYSTEM SET加密钱包OPEN由 “mynewpassword1” 标识;

但是,在更改密码之后,此命令现在会产生以下错误:

第1行的错误:
ORA-28367: 钱包不存在

看来钱包现在已经被损坏了。

专家解答

是否可能您的sqlnet.ora参数不正确,或者您的TNS_ADMIN等已设置为无法访问sqlnet.ora。因为我在11g实例上执行了您提到的步骤 (在我的情况下为11.2.0.4),没有发生任何事件。

sqlnet.ora
==========
ENCRYPTION_WALLET_LOCATION=
  (SOURCE=(METHOD=FILE)(METHOD_DATA=
    (DIRECTORY=C:\oracle\wallet)))

SQL> conn / as sysdba
Connected.

SQL> ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "Password1";

System altered.

SQL> create tablespace SECURETS
  2  datafile 'C:\ORACLE\ORADATA\DB11\SECURETS.DBF' size 50m
  3  encryption using 'AES256'
  4  default storage(encrypt);

Tablespace created.

SQL>
SQL> alter user SCOTT quota unlimited on SECURETS;

User altered.

SQL> create table scott.secure_data tablespace securets
  2  as select * from dba_objects;

Table created.

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

--
-- then I changed the password
--
C:\>orapki wallet change_pwd -wallet c:\oracle\wallet -oldpwd Password1 -newpwd Password2
Oracle PKI Tool : Version 11.2.0.4.0 - Production
Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.

--
-- proved that the new password was in effect
--
SQL> startup
ORACLE instance started.

Total System Global Area 2622255104 bytes
Fixed Size                  2284104 bytes
Variable Size             637535672 bytes
Database Buffers         1962934272 bytes
Redo Buffers               19501056 bytes
Database mounted.
Database opened.
SQL> ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "Password1";
ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "Password1"
*
ERROR at line 1:
ORA-28353: failed to open wallet


SQL> ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "Password2";

System altered.

SQL> conn scott/tiger
Connected.

SQL> select max(owner) from secure_data;

MAX(OWNER)
------------------------------
XDB

SQL>
SQL>
复制


但是操作系统级别的任何不一致最终都会导致您看到的行为,例如

1) sqlnet.ora丢失或错误

ENCRYPTION_WALLET_LOCATION=
  (SOURCE=(METHOD=FILE)(METHOD_DATA=
    (DIRECTORY=C:\oracle\wallet.wrong)))

SQL> ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "Password2";
ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "Password2"
*
ERROR at line 1:
ORA-28367: wallet does not exist
复制


2) 钱包文件不可访问 (权限或位置)

SQL> ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "Password2";
ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "Password2"
*
ERROR at line 1:
ORA-28367: wallet does not exist
复制


在我的系统上,试图通过设置TNS_ADMIN来 “故意” 混淆事情没有影响,即,数据库总是在 $ ORACLE_HOME/network/admin/sqlnet.ora中查找,但是检查你的,以确保没有发挥作用。

如果所有这些都有效,请与支持人员聊天,以查看以下错误是否适用于您:

错误9692876用owm修改的tde钱包无法再被tde打开
Bug 9215461用hsm开始tse主密钥重新密钥给ora-28362

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

评论