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用戶的表不能被加密
轉載于:https://blog.51cto.com/onlinekof2001/1672536
總結
以上是生活随笔為你收集整理的ORACLE TDE 透明数据加密技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 优秀网站收藏
- 下一篇: Go在谷歌:以软件工程为目的的语言设计