亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Oracle > 正文

Oracle 11g透明數據加密安全特性解析

2024-08-29 13:53:28
字體:
來源:轉載
供稿:網友

  升級大對象(Large Object,即LOB)存儲能力的關鍵原因是在Oracle 11g中數據安全需求越來越高,本文主要是研究如何擴充對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_ticketsMODIFY (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數據庫中,只要源和目標數據庫服務器使用了相同的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 AUTOENCRYPTION USING 'AES256'DEFAULT STORAGE (ENCRYPT);
 
  DICOM:存儲病人醫療影像和元數據的工業標準

  美國放射學會(ACR)和國家電氣制造聯合會(NEMA)在1993年通過協作將醫學影像和通訊(DICOM)標準化了,為醫學影像設備和相關應用程序的開發提供了可供參照執行的依據,后來成為存儲和傳輸放射影像通用的標準,Oracle 10g R2完全支持DICOM 3.0標準,但是直到Oracle 11g才實現了對DICOM數據進行加密。

  oracle 11g擴展了Oracle 10g R2 中ORDImage對象類型的能力,增加了一個新的ORDDicom對象類型,以便更有效地存儲DICOM影像,由于ORDDicom對象可以存儲在SecureFile LOB中,這樣就可以實現壓縮、重復數據刪除和加密存儲在DICOM文件中的影像和相關的元數據的能力,醫生、大學和醫院使用計算的病人信息,特別是診斷和研究。

  oracle 10gR2提供了轉儲病人信息到xml文件的能力,但現在的ORDDicom對象擴展了這些能力,使得可以直接在Oracle 11g數據庫查詢病人的元數據,這就意味著可以使用新的高級索引特性如XMLIndex數據類型來檢索特殊的病人信息,此外,Oracle 11g現在還可以創建、存儲、展現和檢索存儲在ORDDicom對象內的數據影像的指紋特征,也就是說將會更容易選中正確的病人信息,ORDDicom數據模型也可以幫助保證病人信息的機密性,因為它提供了一個方法可以避免泄露來自DICOM文件病人元數據中的私密信息。

 1、創建DICOM對象

  為了說明如何使用這些強大的功能特性增強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);
 


  2、從DICOM源文件轉移到ORDDicom對象

  現在我已經為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
 


  3、生成指紋圖像和匿名的元數據

  為了完成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;
 
  /4、使用ORDDicom和ORDImage列的內容

  最后,我已經準備好研究這些已經載入到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數據庫成為美國新的聯邦政府在啟動存儲醫院、病人和醫療元數據方面的主要候選數據庫。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久香蕉国产线看观看网| 国产精品三级网站| 日韩中文字幕在线播放| 91精品久久久久久久久久入口| 亚洲视屏在线播放| 精品视频在线播放色网色视频| 精品久久中文字幕| 亚洲视频在线视频| www.午夜精品| 性夜试看影院91社区| 欧美怡春院一区二区三区| 国产精品久久久久久久久久久新郎| 亚洲有声小说3d| 国产欧洲精品视频| 欧美高清性猛交| 亚洲区一区二区| 日韩精品在线视频美女| 亚洲成人久久电影| 久久福利视频导航| 亚洲精品中文字幕av| 色视频www在线播放国产成人| 亚洲91精品在线| 精品在线小视频| 国产亚洲激情在线| 北条麻妃99精品青青久久| 亚洲黄页网在线观看| 欧美性猛交视频| 亚洲自拍偷拍色图| 欧美日韩国产激情| 夜夜嗨av色综合久久久综合网| 欧美大成色www永久网站婷| 国产69精品久久久久9| 91精品国产91久久久| 在线精品播放av| 成人福利网站在线观看11| 亚洲天堂av网| 国产v综合ⅴ日韩v欧美大片| 亚洲自拍偷拍色片视频| 日韩av高清不卡| 久久久精品国产网站| 亚洲精品久久久久久久久久久久久| 中文字幕久久亚洲| 日韩欧美成人网| 九九热精品视频在线播放| 欧美孕妇毛茸茸xxxx| 最近2019中文字幕在线高清| 国产最新精品视频| 26uuu另类亚洲欧美日本一| 国产成人啪精品视频免费网| 欧美成人剧情片在线观看| 欧美成人精品在线| 亚洲人成网站色ww在线| 蜜臀久久99精品久久久无需会员| 欧美影院成年免费版| 亚洲欧洲美洲在线综合| 亚洲综合日韩中文字幕v在线| 国产91在线高潮白浆在线观看| 91美女福利视频高清| 国产精品久久久av久久久| 久久精品国产v日韩v亚洲| 久久香蕉精品香蕉| 成人日韩在线电影| 日韩在线视频导航| 国产视频一区在线| 伊人男人综合视频网| 欧美日韩精品在线播放| 日韩一区二区在线视频| 欧美成人免费va影院高清| 日韩国产欧美区| 欧美精品午夜视频| 最近2019年日本中文免费字幕| 永久免费毛片在线播放不卡| 欧美性极品少妇精品网站| 欧美中文在线免费| 精品久久久一区二区| 国产精品一区二区3区| 亚洲精品自拍视频| 欧美寡妇偷汉性猛交| 国产精品久久久久一区二区| 久久免费高清视频| 中文字幕亚洲综合久久筱田步美| 欧美中文字幕第一页| 国内精品小视频| 亚洲精品综合久久中文字幕| 成人天堂噜噜噜| 国产福利精品在线| 欧美日本在线视频中文字字幕| 欧美精品在线观看| 欧美日韩加勒比精品一区| 精品国产美女在线| 91精品国产91久久久久| 欧美国产日本高清在线| 亚洲第一精品夜夜躁人人爽| 日韩精品在线私人| 日韩精品在线第一页| 揄拍成人国产精品视频| 亚洲激情自拍图| 中文字幕v亚洲ⅴv天堂| 亚洲欧美激情精品一区二区| 欧美老肥婆性猛交视频| 欧美日韩激情美女| 亚洲视频免费一区| 精品欧美aⅴ在线网站| 中文字幕亚洲欧美日韩2019| 黑人精品xxx一区| 日日骚av一区| 91午夜在线播放| 欧美高跟鞋交xxxxxhd| 97久久久免费福利网址| 欧美在线免费观看| 国产精品丝袜高跟| 日本精品免费一区二区三区| 亚洲综合在线中文字幕| 欧美在线日韩在线| 国产精品日韩专区| 国产精品电影久久久久电影网| 欧洲亚洲在线视频| 国产精品视频资源| 亚洲欧美日本精品| 日日噜噜噜夜夜爽亚洲精品| 欧美成人精品在线观看| 2018日韩中文字幕| 亚洲美女自拍视频| 国产一区二区丝袜高跟鞋图片| 精品国产一区久久久| 亚洲国产毛片完整版| 黑人巨大精品欧美一区免费视频| 色一情一乱一区二区| 日韩精品在线影院| 一区二区亚洲精品国产| 一区二区中文字幕| 亚洲aaaaaa| 精品女同一区二区三区在线播放| 国产精品av在线播放| 欧美激情中文字幕乱码免费| 国产综合香蕉五月婷在线| 久久久国产视频| 成人美女免费网站视频| 国产精品igao视频| 在线看片第一页欧美| 51午夜精品视频| 中文字幕国产亚洲| 俺去啦;欧美日韩| 中文字幕综合在线| 在线观看亚洲区| 国产精品久久久久福利| 久久九九全国免费精品观看| 欧美性感美女h网站在线观看免费| 亚洲自拍欧美另类| 夜夜嗨av一区二区三区免费区| 欧美激情精品久久久久久久变态| 91精品国产乱码久久久久久蜜臀| 隔壁老王国产在线精品| 国产精品观看在线亚洲人成网| 欧美日韩人人澡狠狠躁视频| 亚洲香蕉伊综合在人在线视看| 国产精品高清在线观看| 国产精品午夜视频| 久久久精品免费视频| 久久久久久国产三级电影| 久久久久五月天| 久久久国产一区| 永久免费毛片在线播放不卡| 日韩免费观看av|