Oracle DB加强的数据安全管理(二)

2014-11-24 16:26:24 · 作者: · 浏览: 5
sicFiles 数据进行加密。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 列的SecureFiles 。早期数据库版本中的LOB 实施现在被称为BasicFiles。将LOB 列添加到表
时,可以指定是将其创建为SecureFiles 还是BasicFiles。如果没有指定存储类型,LOB 将创建为BasicFiles 以确保向后兼容性。
在幻灯片的第一个示例中,创建了一个名为FUNC_SPEC 的表,用于将文档存储为SecureFiles 。在该示例中您指定不希望存储LOB 的重复内容、读取时将高速缓存LOB ,
并且对LOB 执行更新时不生成还原。此外,您还指定将使用AES128 加密算法对存储在doc 列中的文档进行加密。与DEDUPLICATE 相反,KEEP_DUPLICATES可用在ALTER语句中。
第二个示例中,您要创建一个名为TEST_SPEC 的表,用于将文档存储为SecureFiles 。对于此表,您指定可以存储重复内容、LOB 将以压缩格式存储,并且将高速缓存LOB 而不进行记录。HIGH 压缩设置需要进行更多的工作,但可提供更有效的数据压缩。默认压缩是MEDIUM 。压缩算法在服务器端实施,允许对LOB 数据进行随机读取和写入,可以通过ALTER语句对其进行更改。
上面的第三和第四个示例会产生相同结果:使用默认的AES192 加密创建具有SecureFilesLOB 列的表。
使用Enterprise Manager 创建SecureFiles
使用Enterprise Manager 创建SecureFiles
可以使用Enterprise Manager 通过“Schema(方案)”选项卡中的“Tables (表)”链接创建SecureFiles 。单击“Create(创建)”按钮后,可以针对要存储为SecureFile 的列单击“Advanced Attributes(高级属性)”按钮输入任一 SecureFiles 选项。
考虑到向后兼容性,仍然支持早期版本中的LOB 实施,现在将其称为BasicFiles。如果将LOB 列添加到表中,则可以指定是将其创建为SecureFile 还是BasicFile 。如果没有指定存储类型,LOB 将创建为BasicFiles 以确保向后兼容性。
可以为高速缓存选项选择下列值:
CACHE:为了提高访问速度,Oracle 将LOB 页置于缓冲区高速缓存中。
NOCACHE:作为STORE AS 子句中的参数,NOCACHE指定不将LOB 值置于缓冲区高速缓存中。
CACHE READS :仅在读取操作期间(而非写入操作期间),才将LOB 值置于缓冲区高速缓存中。
NOCACHE是SecureFile 和BasicFile LOB 的默认值。
共享I/O 池

为了支持共享内存(与程序全局区(PGA) 相对)的大型 I/O,Oracle Database 11 g 中新增了共享I/O 池内存 组件,用于进行直接路径访问。这种情况仅适用于将SecureFiles 创建为NOCACHE时(默认)。共享I/O 池默认大小为零,仅当存在SecureFiles NOCACHE工作量时,系统才会将其大小增加到高速缓存的4%。由于这是共享资源,因此可由大型并发SecureFiles 工作量使用。与其它池(如大型池或共享池)不同,用户进程不会生成ORA-04031 错误,但在释放更多共享I/O 池缓冲区之前会临时退回到PGA 。
LOB 高速缓存是SecureFiles 体系结构中的新组件,通过收集和批处理数据以及重叠网络和磁盘I/O 改进了LOB 访问性能。LOB 高速缓存从缓冲区高速缓存(常规缓冲区或共享I/O 池的内存)借用内存。由于从缓冲区高速缓存借用的内存实质上适合于执行数据库I/O,并且适合在I/O 完成后回退到该缓冲区高速缓存,因此可以避免不必要的内存复制。
在多实例 Oracle Real Application Clusters 中,LOB 高速缓存为每个已访问的LOB 保留一个锁定。
更改SecureFiles

更改SecureFiles
使用DEDUPLICATE 选项,可以指定在LOB 列的两行或多行中相同的LOB 数据共享同一数据块。KEEP_DUPLICATES与此相反。Oracle 使用安全的散列索引检测重复,并且将