Oracle TDE 透明資料加密技術

來源:互聯網
上載者:User

Oracle TDE 透明資料加密技術

從ORALE 10GR2開始出現透明資料加密技術(Transparent Data Encryption,TDE)。

TDE用來對資料加密,通常 SQL 執行的應用程式邏輯不需要變更,仍能正常運行。 換言之,應用程式可以使用同一文法將資料插入到應用程式表中,並且 Oracle 資料庫在將資訊寫入磁碟之前將自動對資料進行加密。 隨後的選擇操作將透明地解密資料,因此應用程式將繼續正常地運行。 這一點很重要,因為當前的應用程式通常期望未加密的應用程式資料。 顯示加密資料至少會使應用程式使用者迷惑不解,甚至還會破壞現有的應用程式。
     
設定加密金鑰: 
 
Oracle 透明資料加密提供了實施加密所必需的關鍵管理基礎架構。加密的工作原理是將明文資料以及秘密(稱作密鑰)傳遞到加密程式中。加密程式使用提供的金鑰組明文資料進行加密,然後返回加密資料。以往,建立和維護密鑰的任務由應用程式完成。 Oracle 透明資料加密通過為整個資料庫自動產生一個萬能密鑰解決了此問題。在啟動 Oracle 資料庫時,管理員必須使用不同於系統口令或 DBA 口令的口令開啟一個 Oracle Wallet 對象。然後,管理員對資料庫萬能密鑰進行初始化。萬能密鑰是自動產生的。
 
準備用於加密的資料庫

在$ORACLE_HOME/network/admin中的sqlnet.ora中增加一個ENCRYPTED_WALLET_LOCATION條目。
ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/u01/oracle/product/11.2.0.1.0/wallet/)))
進入資料庫執行以下語句
 alter system set key identified by "welcome"
如果提示以下錯誤,表示wallet沒有被自動建立出來,可能是因為wallet目錄需要手工建立的原因
ORA-28368: cannot auto-create wallet
 
手工建立wallet目錄,並授予oracle使用者存取權限。
alter system set key identified by "welcome";
SQL> conn hr/hr
SQL> create table test (id number,credit_card_number varchar2(16) ENCRYPT NO SALT);
SQL> insert into test values(1,'12312432');
1 row created.
SQL> insert into test values(2,'33245235');
SQL> commit;
Commit complete.
SQL> select * from test;

這個時候是可以看到被加密的資料的,當重啟後重新查詢加密資料就無法看到了。這個時候需要開啟wallet才可以查看加密資料
alter system set wallet open identified by "welcome1";

 sys使用者的表不能被加密

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.