当前位置:七道奇文章资讯数据防范Oracle防范
日期:2011-01-25 22:55:00  来源:本站整理

<b>Oracle 11g透明数据加密安全特点解析-性能调优</b>[Oracle防范]

赞助商链接



  本文“<b>Oracle 11g透明数据加密安全特点解析-性能调优</b>[Oracle防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

  进级大对象(Large Object,即LOB)存储 style="COLOR: #000000" href="http://storage.it168.com/" target=_blank>存储本领的关键缘由是在Oracle 11g中数据安全 style="COLOR: #000000" href="http://safe.it168.com/" target=_blank>安全需求越来越高,本文主如果研究若何扩大对LOB和表空间的透明数据加密(Transparent Data Encryption,即TDE)特点来提高数据的安全性,并注释这些特点是若何保护复杂的、非构造化数据的,如医学数字图象通讯信息(Digital Imaging for Communication of Medical Information,即DICOM)对象.

  Oracle 11g新的SecureFile特点主如果集合在数据紧缩和反复数据删除方面,主如果为了节俭存储LOB对象的空间,当然在安全特点方面Oracle 11g不但只有这两个,全部这些安全特点也非常符合近来当选的美国总统奥巴马公布的议事日程,白宫的技术方向明确指明新的管理筹划:

  在电子信息技术系统方面增添投入以降低医疗保健方面的本钱,利用卫生信息技术降低医疗保健方面的本钱,每年投入100亿美圆,到五年后让美国的医疗保健系统扩大为基于尺度的电子医疗信息系统,包含电子安康记录.

  加密LOB:把安全放进SecureFile

  Oracle 11g目前把在SecureFile LOB中存储敏感信息放在非常重要的战略位置,因为这样才可以证明在Oracle 10gR2中推出的透明数据加密(TDE)的作用,TDE在列级供应了遵守产业尺度的自动加密算法(如3DES168,AES128,AES192和AES256).

  1、开启透明数据加密

  在开始利用透明数据加密特点之前,需求在数据库中举行一翻设置,幸运的是,在Oracle 11g数据库中这个设置非常简单了,因为目前只需求在数据库的网络配置文件中增添符合的配置目录便可,在之前的Oracle版本中,最简单的办法就是通过Oracle Wallet Manager utility设置这个"wallet"文件,欲理解前期版本是若何启用透明数据加密特点的,请参考我之前的文章"如安在Oracle 10g R2中实现透明数据加密".

  清单1中的内容显示了我在SQLNET.ORA网络配置文件中增添的内容,以便在我指定的目录中成立默许的TDE PKI密钥文件ewallet.p12,然后我利用ALTER SYSTEM SET ENCRYPTION KEY号令翻开这个"wallet"并开启加密特点.

  清单1 开启透明数据加密

  在SQLNET.ORA网络配置文件中增添参数设置开启Oracle 11g数据库的透明数据加密功效

ENCRYPTION_WALLET_LOCATION =

  (SOURCE
=

  (METHOD
=FILE)

  (METHOD_DATA
=

  (DIRECTORY
=/u01/app/oracle/admin/orcl/wallet)

  )

  然后,翻开wallet并设置加密密钥密码激活Oracle 11g的加密功效

 SQL> ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "r3aL1y!T16ht";

  SQL
> ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "r3aL1y!T16ht";

  2、掌握SecureFile加密

  完成TDE设置后,在开启SecureFile LOB加密相对就简单了,和在Oracle表中开启别的范例的加密很近似,ENCRYPT奉告Oracle在现有SecureFile LOB上利用TDE加密,也可以通过DECRYPT奉告Oracle从SecureFile LOB上移除加密特点.

  3、改变SecureFile加密算法或加密密钥

  和别的Oracle数据范例一样,ALTER TABLE REKEY号令可以用来改合理前的加密算法,如默许的加密算法AES192改成AES256,TDE PKI密钥发生改变的话,REKEY号令也可以用于重新加密现有的SecureFile LOB.Oracle将会在块级举行加密,确保重新加密履行得更有效.

  但请注意在相同的分区下对应的SecureFile LOB段只可以被改正成启用或禁用加密,如LOB段不能被REKEY,这是因为Oracle 11g在相同的LOB分区内对全部SecureFile LOB利用了相同的加密算法.

  清单2显示这些号令的示例.

  清单2 对已有的SecureFile LOB利用透明数据加密

  利用默许的加密给单个SecureFile LOB

SQL> ALTER TABLE trbtkt.secure_tickets

  MODIFY (document CLOB ENCRYPT);

  利用非默许的AES 256位加密算法给单个SecureFile LOB 

SQL> ALTER TABLE trbtkt.secure_tickets

  MODIFY (scrnimg CLOB ENCRYPT USING
'AES256');

  为单个SecureFile LOB rekey加密

 SQL> ALTER TABLE trbtkt.secure_tickets

  MODIFY (scrnimg CLOB REKEY USING
'AES192');

  将加密利用给一个分区段 

SQL> ALTER TABLE trbtkt.secure_tickets

  MODIFY PARTITION sts_open (LOB(document) (ENCRYPT));

  从单个SecureFile LOB中移除加密

 SQL> ALTER TABLE trbtkt.secure_tickets

  MODIFY (scrnimg CLOB DECRYPT);

  加密表空间

  Oracle 10g R2将它的加密本领扩大到数据库的肆意表和索引了,但要辨认和断绝那些需求加密的对象和列工作量很大,普通,大概仅仅是将很多在业务功效上类似的对象全部加密了,如数据库中全部封装了奥秘雇员信息的表和索引,为了使在这些情形下的加密变得越发简单易行,Oracle 11g目前可以加密整个表空间了.

  表空间加密仍旧是在块级实现的,但遗憾的是它不能在现有的表空间上履行,因此Oracle DBA必须在一开始成立表空间的时刻就启用加密,然后Oracle DBA便可以利用ALTER TABLE MOVE号令来将表移动到加密表空间中,与此近似,已有的索引也可以通太重新成立号令ALTER INDEX REBUILD ONLINE,直接迁移到加密表空间中去.

  和加密列一样,在成立加密表空间之前,数据库加密wallet必须先翻开才行,通过CREATE TABLESPACE号令中新的ENCRYPTION指令,新的表空间将会自动利用指定的加密算法到全部存储在其内部的对象,默许采取的是AES 128位加密算法,但可以利用肆意一个尺度的加密算法(3DES168,AES128,AES192和AES256之一),假如不出什么问题的话,一个加密表空间可以传输到一个差别的Oracle 11g数据库中,只要源和目标数据库服务器 style="COLOR: #000000" href="http://server.it168.com/" target=_blank>服务器利用了相同的endianness,并同享了相同的加密wallet便可.

  但注意暂时表空间和UNDO表空间不能利用这类加密算法,一样,扩大表源数据和扩大LOB(如BFILE)也不能加密.最后,由于加密密钥是在表级利用的,因此无法为加密表空间内的加密对象履行全局rekey,但在初始化加密表空间时可以利用这个办法来履行一次rekey操作.

  为了阐明加密表空间的特点,我成立了一个新的表空间PATIMAGES,采取了AES 256位加密算法,如清单3中的代码所示.我将利用这个新的表空间作为容器,存储背面我们将要谈论到的通过SecureFile在表中存储敏感的医疗信息:利用来自DICOM文件的源数据,在Oracle 11g中存储医疗影像和相关信息.

  清单3 成立一个加密表空间存储敏感信息

DROP TABLESPACE patimages INCLUDING CONTENTS AND DATAFILES;

  
CREATE TABLESPACE patimages

  DATAFILE
'/u01/app/oracle/oradata/orcl/patimages01.dbf'

  SIZE 64M REUSE

  EXTENT MANAGEMENT LOCAL

  UNIFORM SIZE 1M

  SEGMENT
SPACE MANAGEMENT AUTO

  ENCRYPTION USING
'AES256'

  
DEFAULT STORAGE (ENCRYPT);

  为了阐明若何利用这些强盛的功效特点加强Oracle 11g SecureFile的加密本领,我成立了一个新的筹划和表MIPS.PATIENT_IMAGES,我将利用这个表存储DICOM元数据,并在ORDDicom和ORDImage数据范例列中存储影像数据,DICOM_IMAGE列将会存储来自对应的源文件直接载入的DICOM信息,ANONYMOUS列将会存储病人的敏感数据,THUMBPRINT列将会存储来自每个DICOM文件中第一个影像的指纹图象,清单4显示了我成立这个表的DDL语句.

  清单4 成立加密的SecureFile LOB存储敏感信息 

成立一个用户(MIPS)

  
DROP USER mips CASCADE;

  
CREATE USER mips

  IDENTIFIED
BY mips

  
DEFAULT TABLESPACE patimages

  
TEMPORARY TABLESPACE temp

  QUOTA UNLIMITED
ON patimages;

  
GRANT CONNECT, RESOURCE TO mips;

  
GRANT EXECUTE ANY PROCEDURE to mips;

  
GRANT CREATE ANY DIRECTORY TO mips;

  成立一个新的目录  

DROP DIRECTORY mips_imgs;

  
CREATE OR REPLACE DIRECTORY mips_imgs

  
AS '/home/oracle/dicom';

  
GRANT READ ON DIRECTORY mips_imgs TO mips;

  成立一个新表MIPS.PATIENT_IMAGES利用SecureFile LOB存储DICOM文件.

 DROP TABLE mips.patient_images PURGE;

  
CREATE TABLE mips.patient_images (

  patient_id
NUMBER

  ,name
VARCHAR2(30)

  ,ssn
VARCHAR2(11)

  ,dob DATE

  ,dicom_image ORDSYS.ORDDICOM

  ,anonymous ORDSYS.ORDDICOM

  ,thumbprint ORDSYS.ORDIMAGE

  )

  TABLESPACE patimages

  LOB(dicom_image.source.localData)

  STORE
AS SECUREFILE (

  TABLESPACE patimages

  DISABLE STORAGE
IN ROW

  DEDUPLICATE

  COMPRESS HIGH

  CACHE READS

  )

  LOB(anonymous.source.localData)

  STORE
AS SECUREFILE (

  TABLESPACE patimages

  DISABLE STORAGE
IN ROW

  DEDUPLICATE

  COMPRESS HIGH

  CACHE READS

  )

  LOB(thumbprint.source.localData)

  STORE
AS SECUREFILE (

  TABLESPACE patimages

  DISABLE STORAGE
IN ROW

  DEDUPLICATE

  COMPRESS HIGH

  CACHE READS

  )

  ;

  
-- 注释

  COMMENT
ON TABLE mips.patient_images

  
IS 'Contains Patient metadata and DICOM images';

  COMMENT
ON COLUMN mips.patient_images.patient_id

  
IS 'Unique identifier for a Patient';

  COMMENT
ON COLUMN mips.patient_images.name

  
IS 'Patient Name';

  COMMENT
ON COLUMN mips.patient_images.ssn

  
IS 'Patient Social Security Number';

  COMMENT
ON COLUMN mips.patient_images.dob

  
IS 'Patient Date of Birth';

  COMMENT
ON COLUMN mips.patient_images.dicom_image

  
IS 'DICOM LOB';

  COMMENT
ON COLUMN mips.patient_images.anonymous

  
IS 'Anonymous DICOM LOB';

  COMMENT
ON COLUMN mips.patient_images.thumbprint

  
IS 'Thumbprint of DICOM image';

  
-- 成立索引和约束

  
CREATE UNIQUE INDEX mips.patient_images_pk_idx

  
ON mips.patient_images(patient_id)

  TABLESPACE patimages;

  
ALTER TABLE mips.patient_images

  
ADD CONSTRAINT patient_images_pk

  
PRIMARY KEY (patient_id);

  目前我已经为DICOM信息成立好了得当的资料库,我将要利用SQL*Loader直接从DICOM源文件中提取并格局化病人元数据,关于我的源数据,我将利用若干个简单的DICOM文件,这些DICOM文件都是从http://www.barre.nom.fr/medical/下载得到的,病人的姓名和别的信息美满是虚拟的,只是为了阐明这些概念,清单5显示了SQL*Loader用于初始化、格局化和从这些源文件中载入DICOM数据到ORDDicom和ORDImage数据范例列的参数文件,以及调用SQL*Loader履行这个初始化数据载入的后果.

  清单5 利用SQL*Loader载入DICOM原始文件到Oracle 11g数据库中

 -- SQL*Loader参数文件: LoadDICOMFromFile.sqlparms

  
-- 目的: 这个参数文件将直接从DICOM文件载入DICOM数据到MIPS.PATIENT_IMAGES 表的DICOM_IMAGE 列,它也掌握了ANONYMOUS列(它包容匿名的DICOM数据)和THUMBPRINT列(它包容DICOM图象本身的指纹图象)的初始化.

  
LOAD DATA

  INFILE
*

  
INTO TABLE mips.patient_images

  
TRUNCATE

  FIELDS TERMINATED
BY WHITESPACE

  OPTIONALLY ENCLOSED
BY '"'

  (

  patient_id
INTEGER EXTERNAL

  ,name
CHAR

  ,ssn
CHAR

  ,dob DATE "yyyy
-mm-dd"

  ,fn FILLER
CHAR

  
-- 载入列对象MIPS.PATIENT_IMAGES.DICOM_IMAGE:

  
-- 1.) LOB属性source.localData和DICOM数据一同载入.

  
-- 2.) 属性srcType被设置为"local".

  
-- 3.) 属性updateTime被初始化到当前日期.

  
-- 4.) LOB属性扩大利用空的LOB举行初始化.

  ,dicom_image
COLUMN OBJECT (

  source
COLUMN OBJECT (

  localData LOBFILE(fn) TERMINATED
BY EOF

  ,srcType CONSTANT
'local'

  ,updateTime EXPRESSION "SYSDATE"

  )

  ,extension LOBFILE(fn) TERMINATED
BY EOF

  DEFAULTIF dicom_image.source.srcType
='local'

  )

  
-- 初始化(但不载入)列对象MIPS.PATIENT_IMAGES.ANONYMOUS:

  
-- 1.) LOB属性source.localData和扩大被初始化.

  
-- 2.) srcType属性被初始化为"local".

  
-- 3.) localData LOB将包容DICOM数据的匿名内容.

  
-- 4.) srcType属性被初始化为"local".

  
-- 5.) LOB扩大是一个由ORDDICOM利用的内部字段.

  ,anonymous
COLUMN OBJECT (

  source
COLUMN OBJECT (

  localData LOBFILE(fn) TERMINATED
BY EOF

  DEFAULTIF anonymous.source.srcType
='local'

  ,srcType CONSTANT
'LOCAL'

  )

  ,extension LOBFILE(fn) TERMINATED
BY EOF

  DEFAULTIF dicom_image.source.srcType
='local'

  )

  
-- 初始化(但不载入)列对象MIPS.PATIENT_IMAGES.THUMBPRINT:

  
-- 1.) LOB属性扩大被一个空的LOB初始化.

  
-- 2.) LOB属性source.localData被一个空的LOB初始化.

  
-- 3.) 本地属性被初始化为1.

  ,thumbprint
COLUMN OBJECT (

  source
COLUMN OBJECT (

  localData LOBFILE(fn) TERMINATED
BY EOF

  DEFAULTIF thumbprint.source.local
=X'1'

  ,local CONSTANT
1

  )

  )

  )

  BEGINDATA

  
101 "Ames, Aldritch" 322-51-1111 1907-12-01 CT-MONO2-16-ankle.dcm

  
202 "Barry, Dave" 345-21-2222 1968-12-24 OT-MONO2-8-colon.dcm

  
303 "Colson, Charles" 342-43-3333 1931-11-03 MR-MONO2-8-16x-heart.dcm

  
404 "Dean, John" 322-09-4444 1942-02-18 NM-MONO2-16-13x-heart.dcm

  
505 "Ehrlichman, John" 345-09-5555 1914-08-01 US-PAL-8-10x-echo.dcm

  
606 "Haldeman, Robert" 322-18-6666 1918-11-11 US-RGB-8-esopecho.dcm

  
>>> SQL*Loader results:

  SQL
*Loader: Release 11.1.0.6.0 - Production on Sat Mar 14 13:00:40 2009

  Copyright (c)
1982, 2007, Oracle. All rights reserved.

  Control
File: LoadDICOMFromFile.sqlparms

  Data
File: LoadDICOMFromFile.sqlparms

  Bad
File: LoadDICOMFromFile.bad

  Discard
File: none specified

  (Allow
all discards)

  
Number to load: ALL

  
Number to skip: 0

  Errors allowed:
50

  Bind array:
64 rows, maximum of 256000 bytes

  Continuation: none specified

  Path used: Conventional

  
Table MIPS.PATIENT_IMAGES, loaded from every logical record.

  
Insert option in effect for this table: TRUNCATE

  
Column Name Position Len Term Encl Datatype

  
------------------------------ ---------- ----- ---- ---- ---------------------

  PATIENT_ID FIRST
* WHT O(") CHARACTER

  NAME
NEXT * WHT O(") CHARACTER

  SSN
NEXT * WHT O(") CHARACTER

  DOB
NEXT * WHT O(") DATE yyyy-mm-dd

  FN
NEXT * WHT O(") CHARACTER

  (FILLER FIELD)

  DICOM_IMAGE DERIVED
* COLUMN OBJECT

  
*** Fields in DICOM_IMAGE

  SOURCE DERIVED
* COLUMN OBJECT

  
*** Fields in DICOM_IMAGE.SOURCE

  LOCALDATA DERIVED
* EOF CHARACTER

  Dynamic LOBFILE. Filename
in field FN

  SRCTYPE CONSTANT

  Value
is 'local'

  UPDATETIME EXPRESSION

  SQL string
for column : "SYSDATE"

  
*** End of fields in DICOM_IMAGE.SOURCE

  EXTENSION DERIVED
* EOF CHARACTER

  Dynamic LOBFILE. Filename
in field FN

  
DEFAULT if DICOM_IMAGE.SOURCE.SRCTYPE = 0X6c6f63616c(character 'local')

  
*** End of fields in DICOM_IMAGE

  ANONYMOUS DERIVED
* COLUMN OBJECT

  
*** Fields in ANONYMOUS

  SOURCE DERIVED
* COLUMN OBJECT

  
*** Fields in ANONYMOUS.SOURCE

  LOCALDATA DERIVED
* EOF CHARACTER

  Dynamic LOBFILE. Filename
in field FN

  
DEFAULT if ANONYMOUS.SOURCE.SRCTYPE = 0X6c6f63616c(character 'local')

  SRCTYPE CONSTANT

  Value
is 'LOCAL'

  
*** End of fields in ANONYMOUS.SOURCE

  EXTENSION DERIVED
* EOF CHARACTER

  Dynamic LOBFILE. Filename
in field FN

  
DEFAULT if DICOM_IMAGE.SOURCE.SRCTYPE = 0X6c6f63616c(character 'local')

  
*** End of fields in ANONYMOUS

  THUMBPRINT DERIVED
* COLUMN OBJECT

  
*** Fields in THUMBPRINT

  SOURCE DERIVED
* COLUMN OBJECT

  
*** Fields in THUMBPRINT.SOURCE

  LOCALDATA DERIVED
* EOF CHARACTER

  Dynamic LOBFILE. Filename
in field FN

  
DEFAULT if THUMBPRINT.SOURCE.LOCAL = 0X01(character '')

  LOCAL CONSTANT

  Value
is '1'

  
*** End of fields in THUMBPRINT.SOURCE

  
*** End of fields in THUMBPRINT

  
Table MIPS.PATIENT_IMAGES:

  
6 Rows successfully loaded.

  
0 Rows not loaded due to data errors.

  
0 Rows not loaded because all WHEN clauses were failed.

  
0 Rows not loaded because all fields were null.

  
Space allocated for bind array: 83456 bytes(64 rows)

  
Read buffer bytes: 1048576

  Total logical records skipped:
0

  Total logical records
read: 6

  Total logical records rejected:
0

  Total logical records discarded:
0

  Run began
on Sat Mar 14 13:00:40 2009

  Run ended
on Sat Mar 14 13:00:49 2009

  Elapsed time was:
00:00:09.65

  CPU time was:
00:00:00.61

  为了完成ANONYMOUS和THUMBPRINT列的填充,我将利用一些本领:

  (1)首先,我将通过调用setModel 办法载入ORDDicom对象模子,这个对象模子必须在调用别的办法之前载入.

  (2)然后利用processCopy办法生成一张150x200的JPEG图象,将其存储到THUMBPRINT列中.

  (3)最后,我利用makeAnonymous办法成立一个匿名版本的DICOM_IMAGE列数据,并将其存储到ANONYMOUS列中.

  清单6 显示了如安在最初被载入MIPS.PATIENT_IMAGES表中的全部行上履行这些办法.

  清单6 早年面载入的ORDDicom对象成立和存储匿名的病人信息和指纹图象:

  1)将DICOM模子载入到内存中.

  2)将原始的DICOM文件元数据转换成对应的元素.

  3)基于原始的DICOM影像以JPEG格局成立一个缩略图.

  4)生成一个匿名的DICOM文件版本.

  5)将新的信息保存到它们对应的SecureFile LOB中.

SET SERVEROUTPUT ON

  
DECLARE

  dcm_row ORDSYS.ORDDICOM;

  
BEGIN

  
-- 载入DICOM数据模子

  ord_dicom.setDatamodel;

  
-- 在医学图象表中遍历全部行

  
FOR dcm_row IN (

  
SELECT

  patient_id

  ,dicom_image

  ,anonymous

  ,thumbprint

  
FROM mips.patient_images

  
FOR UPDATE

  )

  LOOP

  
BEGIN

  
-----

  
--通过setProperties存储历程初始化DICOM SecureFile LOB列属性

  
-----

  dcm_row.dicom_image.setProperties();

  
-----

  
-- 在原始DICOM影像的底子上构建一个缩略图图象

  
-----

  dcm_row.dicom_image.processCopy(
'fileFormat=JPEG fixedScale=150,200', dcm_row.thumbprint);

  
-----

  
-- 通过makeAnonymous()函数生成DICOM对象的匿名版本

  
-----

  dcm_row.dicom_image.makeAnonymous(genUID(dcm_row.patient_id), dcm_row.anonymous);

  
-----

  
-- 将新产生的信息保存到它们对应的SecureFile LOB中

  
-----

  
UPDATE mips.patient_images

  
SET dicom_image = dcm_row.dicom_image

  ,anonymous
= dcm_row.anonymous

  ,thumbprint
= dcm_row.thumbprint

  
WHERE patient_id = dcm_row.patient_id;

  EXCEPTION

  
WHEN OTHERS THEN

  DBMS_OUTPUT.PUT_LINE(
'Error processing image for Patient ID #' || dcm_row.patient_id);

  
END;

  
END LOOP;

  
COMMIT;

  
END;

  
/

  最后,我已经预备好研究这些已经载入到DICOM列的DICOM信息,幸运的是,ORDDicom数据范例使得这些工作变得相当简单,因为它供应了多种办法来直接查询病人的元数据属性,清单7显示了一个简单的查询,它直接从DICOM_IMAGE和THUMBPRINT列查询多个属性.

  清单7 查看已经载入到ORDDICOM和ORDIMAGE对象中的元数据

  显示挑选的内容:

  1)普通数据范例

  2)ORDDICOM数据范例

  3)ORDIMAGE数据范例 

SET LINESIZE 80

  
SET PAGESIZE 80

  TTITLE
'Sample Patient Metadata|(from MIPS.PATIENT_IMAGES)'

  
COLUMN patient_id FORMAT 99999 HEADING 'Pat|ID'

  
COLUMN name FORMAT A20 HEADING 'Patient Name' WRAP

  
COLUMN ssn FORMAT A11 HEADING 'Patient SSN'

  
COLUMN di_sop_uid FORMAT A30 HEADING 'DICOM Image SOP UID' WRAP

  
COLUMN tp_len FORMAT 99999 HEADING 'Thumb|Print|Image|Size'

  
SELECT

  
PI.patient_id

  ,
PI.name

  ,
PI.ssn

  ,
PI.dicom_image.sop_instance_uid AS di_sop_uid

  ,
PI.thumbprint.getcontentlength() AS tp_len

  
FROM mips.patient_images PI

  
ORDER BY PI.patient_id

  ;

  TTITLE
OFF

  Sun Mar
15 page 1

  Sample Patient Metadata

  (
from MIPS.PATIENT_IMAGES)

  Thumb

  
Print

  Pat
Image

  ID Patient Name Patient SSN DICOM
Image SOP UID Size

  
------ -------------------- ----------- ------------------------------ ------

  
101 Ames, Aldritch 322-51-1111 1.2.840.113619.2.1.2411.103115 5034

  
2382.365.1.736169244

  
202 Barry, Dave 345-21-2222 1.3.46.670589.17.1.7.0.16 5677

  
303 Colson, Charles 342-43-3333 999.999.2.19960619.163000.1.10 3648

  
3

  
404 Dean, John 322-09-4444 2.16.840.1.113662.5.8796818449 1596

  
476.121423489.1.1.3101.5309511

  
143

  
505 Ehrlichman, John 345-09-5555 999.999.133.1996.1.1800.1.6.25 5252

  
606 Haldeman, Robert 322-18-6666 999.999.2.19941105.112000.2.10 4683

  
7

  校验存储在ORDDicom或ORDImage数据范例列中的图象需求一点本领,因为需求一个接口才能查看这些图象,因为这些图象都采取基于产业尺度的格局存储,如JPEG,TIF,PNG等,所以有大量的免费图象查看程序可以拿来利用.

  小结

  Oracle 11g新的SecureFile特点大大扩大在Oracle数据库中存储大对象的本领,并提高了安全性和有效性,SecureFILE LOB的紧缩和反复数据删除功效在空间操纵上更是让人惊奇,SecureFILE LOB的透明数据加密特点让存储在Oracle 11g数据库中的敏感信息和奥秘信息安全性更有保障,这些特点让Oracle 11g数据库成为美国新的联邦政府在启动存储病院、病人和医疗元数据方面的主要候选数据库.

  以上是“<b>Oracle 11g透明数据加密安全特点解析-性能调优</b>[Oracle防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .