从10gR2开始,oracle推出了透明数据加密技术(Transparent Data Encryption,TDE)。有效的保护数据的安全。 使用透明加密的时候有可能遇到ORA-28353和ORA-28368错误。
下面是有关实验。
SQL>create table test (id number,name varchar2(16) ENCRYPT NO SALT);
第 1 行出现错误:
ORA-28353: 无法打开 wallet
SQL> alter system set encryption key identified by "super5281";
alter system set encryption key identified by "super5281"
*
第 1 行出现错误:
ORA-28368: 无法自动创建 wallet
原因:$ORACLE_HOME/admin/$ORACLE_SID/wallet是存放密钥的默认目录,如果没有在sqlnet.ora文件中指定密钥存放的路径,没有此目录会报ORA-28368: 无法自动创建 wallet错误。
网上有很多关于此错误的文档,总的来说解决方法有两种
1. 创建密钥的默认存放目录
$ORACLE_HOME/admin/$ORACLE_SID/wallet
2. 在sqlnet.ora文件中指定密钥的存放目录
网上很多资料都说在sqlnet.ora文件中加入以下内容
ENCRYPTION_WALLET_LOCATION=
(SOURCE=(METHOD=FILE)(METHOD_DATA=
(DIRECTORY=D:\oracle\product\11.2.0\dbhome_1\admin\stream\wallets))
)
但是我建立了默认路径,也在sqlnet.ora文件中制定了路径(也是默认路径)仍然无法创建wallet,而且监听已经起不开,正确的方法是在sqlnet.ora文件中加入
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
ENCRYPTION_WALLET_LOCATION=
(SOURCE=(METHOD=FILE)(METHOD_DATA=
(DIRECTORY=D:\oracle\product\11.2.0\dbhome_1\admin\stream\wallets))
)
SQL> alter system set encryption key identified by "super5281";
系统已更改。
SQL> create table test (id number,name varchar2(16) ENCRYPT NO SALT);
表已创建。
SQL> insert into test values(1,'zhangsan');
已创建 1 行。
SQL> insert into test values(2,'lisi');
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from test;
ID NAME
---------- ----------------
1 zhangsan
2 lisi
如果此时关闭wallet,name字段将不能查询。
重启数据库,wallet默认关闭状态。
SQL> conn / as sysdba
已连接。
QL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 313860096 bytes
Fixed Size 1374304 bytes
Variable Size 176162720 bytes
Database Buffers 130023424 bytes
Redo Buffers 6299648 bytes
数据库装载完毕。
数据库已经打开。
Wallet关闭,加密的字段已不能查询。
SQL> conn stream/stream
已连接。
SQL> select * from test;
select * from test
*
第 1 行出现错误:
ORA-28365: Wallet 未打开
未被加密的字段可以查询。
SQL> select id from test;
ID
----------
1
2
打开wallet之后,加密的字段可以被查询。
SQL> alter system set encryption wallet open identified by "super5281";
系统已更改。
SQL> select * from test;
ID NAME
---------- ----------------
1 zhangsan
2 lisi
除了encrypt,加密列还有另外一个属性salt,默认情况下是salt,可以通过alter table table_name modiry (column_name column_type encrypt no salt)命令修改成no salt,只有no salt的加密列上才能创建索引
SQL> create index index_name on test(name);
索引已创建。
SQL> drop index index_name;
索引已删除。
SQL> alter table test modify(name varchar2(16) encrypt);
表已更改。
SQL> create index index_name on test(name);
create index index_name on test(name)
*
第 1 行出现错误:
ORA-28338: 不能同时使用 salt 值索引和加密列
Sys拥有的对象不能使用透明加密。
SYS拥有的对象不能被加密。
SQL> conn / as sysdba
已连接。
SQL> create table test (id number,name varchar2(16) ENCRYPT NO SALT);
create table test (id number,name varchar2(16) ENCRYPT NO SALT)
*
第 1 行出现错误:
ORA-28336: 不能加密 SYS 所拥有的对象
分享到:
相关推荐
Oracle 11g R2 通过引入透明数据加密(TDE)和数据文件热备份等特性,显著提高了数据安全性。这些特性可以帮助企业确保敏感数据的安全,并符合各种行业标准和法规要求。 ##### 3. **性能优化** 为了进一步提升性能...
### Oracle 11gR2 新特性指南 #### 概述 Oracle Database 11g Release 2(简称11gR2)是Oracle数据库的一个重要版本,它在原有11g的基础上增加了许多新的功能、选项和增强特性,旨在提高数据库的性能、可用性和安全...
10. **云服务支持**:Oracle 11gR2还为私有云和公共云环境提供了支持,为未来的云计算部署打下了基础。 通过《11gR2官方中文文档-中英文对照》这份资料,用户可以深入理解这些核心特性,无论是数据库管理员、开发...
随着技术的发展,虽然Oracle后续版本不断推出新特性,但Oracle11g R2仍因其成熟稳定而被广泛使用。对于想要深入了解Oracle11g R2 64位的用户来说,可以从上述关键知识点入手,结合实际应用场景进行深入探索。
- **数据加密**:通过透明数据加密(TDE)等技术,Oracle 11gR2能够在不同层面对敏感数据进行加密保护。 - **审计与合规**:提供了全面的审计功能,如Fine-Grained Auditing (FGA),可以帮助企业满足各种合规要求。 #...
三、Oracle 11gR2新特性 1. 自动内存管理:11gR2引入了Automatic Memory Management,简化了内存配置,自动平衡系统全局区(SGA)和程序全局区(PGA)的内存分配。 2. 数据加密:Oracle Advanced Security提供了...
还有Advanced Security Option提供了增强的数据安全性,包括透明数据加密(TDE),可以保护数据在存储时的安全,防止未授权访问。而Fine-Grained Auditing(FGA)则提供了更细致的审计功能,便于追踪和审核敏感操作...
- **Enhanced Security Features**:增强的安全特性,包括透明数据加密(TDE)等。 - **Improved Backup and Recovery Tools**:改进了备份与恢复工具,如RMAN(Recovery Manager)。 #### 三、Oracle 11g维护关键...
- **增强的安全性功能**:包括透明数据加密(Transparent Data Encryption, TDE)和数据掩码(Data Masking)等特性,加强了数据保护。 - **性能优化**:如自动SQL调优(Automatic SQL Tuning)和自动内存管理(Automatic...
6. **安全性**:Oracle 11gR2增强了用户权限管理、审计和加密功能,包括Fine-Grained Access Control (FGAC)和Transparent Data Encryption (TDE),保障数据安全。 7. **Java集成**:作为标签提到的"java",Oracle ...
在Oracle 11g Release 1 (11gR1)中,透明数据加密(TDE)已经存在,它可以对单个列进行加密。然而,表空间加密则进一步扩展了这一功能,使得整个表空间内的所有数据都能被加密,无需逐列配置。这样,即使数据文件...
例如,虚拟私有数据库(Virtual Private Database, VPD)允许根据用户角色或安全策略对数据进行行级访问控制,而透明数据加密(Transparent Data Encryption, TDE)则可以在不改变应用程序的情况下对表空间进行加密...
透明数据加密 (Transparent Data Encryption, TDE) (10gR2) - **数据加密**:TDE能够在不改变应用程序的情况下对敏感数据进行加密,增强了数据的安全性。 ##### 11. 新的 DBMS_STATS 选项 - **统计信息收集**:...
- **透明数据加密 (TDE)**:介绍了Oracle的透明数据加密功能,这是一种用于加密静态存储的数据的技术。 - **Fine-Grained Auditing (FGA)**:详细解释了细粒度审计的功能,这是一项用于监控特定操作的重要工具。 - *...
Oracle 11g Release 2(11gR2)是Oracle数据库系统的一个重要版本,该版本不仅在性能、安全性和管理方面进行了大量的改进和增强,还引入了许多新特性来支持现代企业的复杂需求。11gR2旨在提高数据可用性、简化管理...