当前位置:数据库 > Oracle >>

Oracle DB加强的数据安全管理

Oracle DB加强的数据安全管理
 
• 描述SecureFiles  如何提高大对象(LOB) 数据类型的性能
• 使用SQL 和PL/SQL API  访问SecureFiles 
管理企业信息
组织需要有效且安全地管理许多类型的数据:
• 结构化:简单数据,对象关系数据
• 半结构化:XML 文档,文字处理文档
• 非结构化:介质、医学数据、映像

管理企业信息
如今,应用程序必须处理多种类型的数据,这些数据主要分为结构化、半结构化和非结构化数据。使用大对象(LOB)  的功能,可以将所有这些类型的数据存储在数据库中以及可从该数据库进行访问的操作系统(OS) 文件中。在关系数据库中保存对象关系数据时,文件系统所具有的简单性和性能使其非常适合于存储文件数据。
现有LOB 实施中的问题
• LOB 大小限制
• 主要考虑“单写多读”数据
• 提供低并发性的DML 
• 用户定义的版本控制
• 统一CHUNK大小:
– 影响碎片
– 大小上限
• Oracle Real Application Clusters (RAC) 的可扩展性问题

现有LOB 实施中的问题
在Oracle8i 中,LOB 设计是基于下列假设做出的:
•LOB 实例化的大小预计为几个兆字节。
•LOB 通常被视为“单写多读”类型的数据。很少进行更新,所以可以为所有类型的更新(大型或小型)对整个块进行版本化。
• 预计很少有批处理会流式处理数据。预计不会出现联机事务处理(OLTP)  类型的工作量。
• 保留的还原量由用户使用PCTVERSION和RETENTION 参数进行控制。这是额外的管理工作。
• 在假设LOB 大小通常是统一的前提下,CHUNK大小是一个静态参数。CHUNK大小的上限是32 KB 。
• 预计Oracle RAC 中不会出现高并发性的写入。
自首次实施后,业务要求已发生了显著变化。现在LOB 的使用方式与关系数据的相似,用于存储各种大小的半结构化和非结构化数据。数据大小可以从几千字节(用于HTML 链接)到几兆兆字节(用于流视频)不等。在LOB 中存储所有文件系统数据的Oracle  文件系统会遇到类似OLTP  的高并发性访问。随着Oracle RAC 日益广泛的应用,必须解决Oracle RAC 的可扩展性问题。LOB 空间结构的现有设计不能满足这些新要求。
Oracle SecureFiles 
Oracle SecureFiles 重新设计了非结构化(文件)数据的处理方法,提供了以下全新的设计:
• 磁盘格式
– 可变块大小
• 网络协议
– 改进的输入/输出
• 版本化和共享机制
• 重做和还原算法
– 无用户配置
• 空间和内存增强功能

Oracle SecureFiles 
Oracle Database 11 g 将LOB 数据类型作为Oracle SecureFiles  进行了完全重新设计,显著改进了应用程序开发的性能、可管理性和易用性。新实施也提供了下一代高级功能,如智能压缩和透明加密。
使用SecureFiles  时,块大小介于Oracle  数据块大小到64 MB 之间。Oracle DB 尝试使数据集中在磁盘的相邻物理位置,从而将内部碎片降到最低。通过使用可变的块大小,SecureFiles  避免对不必要的大型LOB 数据块进行版本化。
SecureFiles  还提供了新的客户机/ 服务器网络层,从而允许在支持更高读写性能的服务器和客户机之间进行高速数据传输。SecureFiles  自动确定生成重做和还原的最有效方法,因而不需要用户定义参数。SecureFiles  自动确定是仅为更改生成重做和还原,还是通过生成完整的重做记录创建新版本。
由于SecureFiles  需要维护各种内存中统计信息以帮助有效地分配内存和空间,所以将其设计为可自适应的智能工具。这样,由于减少了很难使用不可预测的负荷进行优化的可优化参数数量,可管理性有所提高。
启用SecureFiles  存储
可通过下列方法启用SecureFiles  存储:
• 使用DB_SECUREFILE 初始化参数,此参数可采用下列值:
– ALWAYS | FORCE | PERMITTED |   NEVER |  IGNORE
• 使用Enterprise Manager
• 使用ALTER SESSION |  SYSTEM 命令:
SQL> ALTER SYSTEM SET  db_securefile = 'ALWAYS';

启用SecureFiles  存储
使用DB_SECUREFILE 初始化参数,数据库管理员(DBA) 可确定SecureFiles  的使用情况,其中有效值为:
• ALWAYS :尝试将所有LOB 创建为SecureFile LOB,但是仅可将自动段空间管理(ASSM)  表空间外的任何 LOB 创建为BasicFile LOB 
• FORCE:强制将所有LOB 创建为SecureFile LOB 
• PERMITTED:允许创建SecureFiles (默认值)
• NEVER:禁止创建SecureFiles
• IGNORE :禁止创建SecureFiles ,并忽略使用SecureFiles  选项强制创建BasicFiles 而导致的任何错误

如果指定了NEVER,则任何指定为SecureFiles  的LOB 均被创建为BasicFiles。如果对BasicFiles 使用任何SecureFiles  特定的存储选项和功能(如压缩、加密和取消重复),则会导致异常错误。将对任何未指定的存储选项使用BasicFiles 默认值。如果指定了ALWAYS ,则系统中创建的所有LOB 均会被创建为SecureFiles 。必须在ASSM  表空间中创建LOB ,否则会发生错误。将忽略所有指定的BasicFiles 存储选项。可以使用ALTER SYSTEM 命令更改所有存储的SecureFiles  默认值,如幻灯片中所示。
也可以通过单击“Server (服务器)”选项卡中的“Initialization Parameters (初始化参数)”链接来使用Enterprise Manager 设置参数。
SecureFiles:高级功能
• Oracle SecureFiles 提供了下列高级功能:
– 智能LOB 压缩
– 取消重复
– 透明加密
• 这些功能利用了数据库的安全性、可靠性和可扩展性。

SecureFiles:高级功能
Oracle SecureFiles  实施也提供了下一代高级功能,如智能压缩和透明加密。压缩功能支持显式压缩SecureFiles 。SecureFiles  仅为随机读取或写入访问透明解压缩所需的数据块集,从而自动维护未压缩和已压缩的偏移量之间的映射。如果将压缩级别从MEDIUM 更改为HIGH,则映射会自动进行更新以反映新的压缩算法。取消重复可自动检测重复的SecureFile LOB  数据,并通过仅存储一个副本来节省空间-减少磁盘存储空间、I/O  和重做事件记录。可在表级别或分区级别指定取消重复,但不能跨越分区的LOB 。取消重复需要使用高级压缩选项。
现在可以在适当位置存储加密的LOB 数据,并对其进行随机读取和写入,因而提高了数据的安全性。只能按列加密SecureFile LOB  (与透明数据加密相同)。将使用相同的加密算法对LOB 列中的所有分区进行加密。无法对BasicFiles 数据进行加密。SecureFiles  支持行业标准加密算法:3DES168 、AES128、AES192(默认)和AES256。加密是高级安全选项的一部分。
注:必须将COMPATIBLE初始化参数设置为11.0.0.0.0 或更高,才能使用SecureFiles 。在11.1.0.0.0 兼容性下BasicFiles(以前的LOB)格式仍然受支持。设置11.0.0.0.0 后不会出现功能降低。
SecureFiles:存储选项
• MAXSIZE:指定最大LOB 段大小
• RETENTION:指定要使用的保留策略
– MAX :达到 MAXSIZE之前保留旧版本。
– MIN :至少将旧版本保留 MIN 秒。
– AUTO:默认值
– NONE:尽可能重用旧版本。
• 下列存储子句不适用于SecureFiles:
– CHUNK 、PCTVERSION 、FREEPOOLS、FREELISTS 和FREELIST GROUPS

SecureFiles:存储选项
MAXSIZE是新的存储子句,用于控制SecureFiles  的物理存储属性。MAXSIZE指定与存储子句级别相关的最大段大小。
RETENTION 指定SecureFiles  的以下项:
• MAX 在达到段MAXSIZE后重新使用旧版本。
• MIN 在指定的最短时间内保留旧版本。
• AUTO 是默认设置,主要对空间和时间进行折中使之达到平衡。这是自动确定的。
• NONE 尽可能重用旧版本。
使用ALTER TABLE 语句更改RETENTION 仅影响该语句执行后创建的空间。
对于SecureFiles ,不再需要指定CHUNK、PCTVERSION、FREEPOOLS、FREELISTS 和FREELIST GROUPS。为了与现有脚本相兼容,将对这些子句进行分析但不解释它们。
创建SecureFiles 
CREATE TABLE  func_spec(
id number, doc CLOB ENC RYPT USING 'AES128' ) 
LOB(doc) STORE AS SECUREFILE
( DEDUPLICATE LOB CACHE NOLOGGING);

CREATE TABLE  test_spec (
id number, doc  CLOB) 
LOB(doc) STORE AS SECUREFILE
( COMPRESS HIGH KEEP_DUPLICATES CACHE NOLOGGING);  

CREATE TABLE design_spec (id number, doc  CLOB) 
LOB(doc) STORE AS SECUREFILE (ENCRYPT);  

CREATE TABLE  design_spec (id number, 
doc  CLOB ENCRYPT) 
LOB(doc) STORE AS SECUREFILE;  

创建SecureFiles 
可使用CREATE TABLE语句中的存储关键字SECUREFILE创建带有LOB 列的Secure
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,