【11g新特性】Oracle 加密表空間-可下載
前言:資料治理領域裡面經常會遇到敏感資料,例如我們徵信中心的徵信資料就是涉密資料,並不是所有的人都可以看到,就算有授權也只能看到指定物件的資料,那麼想一想假設這些資料被流失出來會是一個怎樣的場景,就像“皇帝新裝”這個故事一個,全部搬上銀幕被展現出來,還記得前幾天12306網站資訊被洩露了嗎!下面來介紹一個Oracle 11g新特性給大家,此特性可以完全避免上述事件的發生,這就是Oracle11g加密表空間特性。
理論
建立一個加密表空間,作用是隻要放在加密表空間中的表,沒有wallet錢包中的金鑰使用者是打不開的,這就可以形成一個保護罩,就算你有許可權查詢資料也不能看到明文,這就起到了風險保障的作用,只有知道秘鑰的管理員才能檢視,下面我們來詳細講解。
一 加密表空間與wallet的關係
1.Oracle 表空間的加密與解密完全是基於wallet錢包中的金鑰進行的。
2.如果wallet是open狀態,那麼我們可以使用其中的金鑰,進行加密與解密處理。
3.如果wallet是close狀態,那麼我們就拿不到金鑰,此時加密表空間是不可用的,例如 查詢 修改 建立 都不允許
4.唯一刪除表是不需要金鑰的,wallet是open or close狀態都無所謂,直接刪除即可
二 TDE(Transparent Data Encryption透明資料加密)使用場景
1.保護敏感資料,禁止未授權的訪問,只有開啟錢包才能檢視資料。
2.防止資料丟失,當加密表空間的資料檔案被惡意複製走後,如果你沒有金鑰是無法還原資料的。
3.防止資料被截獲,當在網路傳輸時加密後的資訊更安全,即使截獲了也無法得知其中內容。
TDE可支援的加密演算法種類 AES(Advanced Encryption Standard高階加密標準) 是DES的升級版
① AES192 192位金鑰加密
② AES128(default) 128位金鑰加密
③ AES256 256位金鑰加密
④ 3DES168 168位金鑰加密 DES(Data Encryption Standard資料加密標準)
AES標準是美國聯邦政府採用的一套加密標準,用來替代原先的DES標準。AES屬於對稱性加密演算法(加密與解密使用同一金鑰進行),反之非對稱性加密演算法(加密與解密使用不同金鑰進行)例如 RSA標準有公鑰與私鑰。
三 TDE(Transparent Data Encryption透明資料加密)加密原理
① 先要建立一個“wallet錢包”,這個錢包裡面儲存著金鑰,Oracle就是透過這個金鑰對列進行加密和解密的。
② 生成wallet錢包之前先要設定wallet錢包的儲存位置
設定wallet錢包位置的檔案$ORACLE_HOME/network/admin/sqlnet.ora
[oracle@cafe admin]$ vim sqlnet.ora 在這個檔案中新增如下指令碼
encryption_wallet_location=(source=
(method=file)
(method_data=
(directory=/u01/app/oracle/product/11.1.0/db_1/network/admin)))
③ 在wallet裡面建立金鑰key,建立後自動開啟wallet,密碼"oracle"不加引號時,後面使用時也不需要加引號
SYS@COFFEE>alter system set encryption key authenticated by "oracle";
或【alter system set encryption key identified by oracle;】
System altered.
說明:authenticated by "oracle" :開啟/關閉wallet的認證密碼是oracle
如果報錯
SYS@COFFEE> alter system set encryption key authenticated by "oracle";
alter system set encryption key authenticated by "oracle"
*
ERROR at line 1:
ORA-28368: cannot auto-create wallet 不能自動建立錢包
在/u01/app/oracle/product/11.1.0/db_1目錄下執行sqlplus 登入資料庫就可以成功執行
④ 檢視一下wallet錢包是否在$ORACLE_HOME/network/admin/目錄下生成
[oracle@cafe admin]$ ll
-rw-r--r-- 1 oracle dba 1573 Nov 7 03:21 ewallet.p12 這個就是我們剛才生成的wallet錢包,裡面有我們建立的金鑰(密文形式),開啟wallet錢包的認證密碼是“oracle”,建立wallet錢包之後金鑰就自動在裡面了。
⑤ 建立一個加密表空間
SYS@COFFEE> create tablespace encrypted_tbs datafile '/u01/app/oracle/oradata/COFFEE/datafile/test_encrypted01.dbf' size 10m encryption default storage(encrypt);
【CREATE TABLESPACE stablespace DATAFILE '/u01/app/oracle/oradata/COFFEE/datafile/stablespace.dbf' SIZE 10M ENCRYPTION DEFAULT STORAGE(ENCRYPT);】
Tablespace created.
建立加密表空間encrypted_tbs,大小10MB,如果不指定加密演算法預設使用AES128加密演算法金鑰長度128位,需open wallet
如果報錯
ERROR at line 1:
ORA-28365: wallet is not open 此時報錯是沒有開啟錢包,因為表空間的加密是使用錢包中的金鑰進行加密的,如果錢包沒開啟便無法使用金鑰,當然也就建立不了加密表空間。
Open&Close the Oracle Wallet mothed
alter system set wallet open identified by "oracle"; 開啟錢包
【alter system set wallet close identified by "oracle";】 關閉錢包11gR2
【alter system set wallet close;】 關閉錢包11gR1
檢視錶空間屬性
SYS@COFFEE> select tablespace_name,encrypted from dba_tablespaces;
TABLESPACE_NAME ENC
------------------------------ ---
SYSTEM NO
SYSAUX NO
UNDOTBS1 NO
TEMP NO
USERS NO
EXAMPLE NO
TBS1 NO
TBS2 NO
TBS3 NO
TBS4 NO
ENCRYPTED_TBS YES 加密狀態
實驗
在加密表空間上建立一張表encryption_t,這張表上資料全部為加密狀態
SYS@COFFEE> create table encrypted_t (x int) tablespace encrypted_tbs;
Table created.
插入一條資料
SYS@COFFEE> insert into encrypted_t values (100);
1 row created.
SYS@COFFEE> commit;
Commit complete.
SYS@COFFEE> select * from encrypted_t;
X
--------------------
100
我們關閉wallet看效果
SYS@COFFEE> alter system set wallet close;
System altered.
當沒有開啟wallet時不允許開打表
SYS@COFFEE> select * from encrypted_t;
select * from encrypted_t
*
ERROR at line 1:
ORA-28365: wallet is not open
建立一個新表encryption_t1時,也需要使用wallet錢包中的金鑰進行加密
SYS@COFFEE> create table encrypted_t1 (x int) tablespace encrypted_tbs;
create table encrypted_t1 (x int) tablespace encrypted_tbs
*
ERROR at line 1:
ORA-28365: wallet is not open
唯一例外->刪除表,因為刪除的過程是不需要金鑰key參與,所以wallet是open or close狀態都無所謂,直接執行就好
SYS@COFFEE>drop table encryption_t;
Table dropped.
小結:我們介紹了Oracle加密表空間的原理、場景、實踐操作,從理論到實踐給朋友們展示了Oralce加密表空間的使用效果,這裡切記一定不要忘記wallet的認證密碼,否則你將不能查詢到表空間內的資料,最好的辦法就是把密碼記錄到一個密碼生成器中,定期更新,這樣既保證安全性又保證不會忘記。
【11g新特性】Oracle加密表空間.pdf 請點選下載
Leonarding
2015.01.05
天津&winter
分享技術~成就夢想
Blog:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29762980/viewspace-1403840/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 11g 表空間加密Oracle加密
- Oracle 11g 新特性 -- 臨時表空間收縮(轉)(Oracle
- Oracle 11g中Temp臨時表空間、檔案的新特性Oracle
- Oracle 18c新特性詳解 - 表和表空間相關的新特性Oracle
- 11g 表空間extent預分配特性
- Oracle 11g 新特性(轉載)Oracle
- Oracle10g新特性——利用RMAN遷移表空間Oracle
- Oracle Database 10g新特性-改善的表空間管理OracleDatabase
- oracle 11g 新特性 表壓縮Oracle
- Oracle10新特性:臨時表空間組(temporary tablespace group)Oracle
- Oracle10g新特性——利用RMAN遷移表空間(二)Oracle
- Oracle10g新特性——利用RMAN遷移表空間(一)Oracle
- 11g 建立加密表空間的方法對比加密
- 10G 新特性系列: SYSAUX 表空間UX
- 建立加密表空間加密
- oracle 11g高階安全元件測試透明資料加密(表空間加密)記錄Oracle元件加密
- Oracle10g新特性:臨時表空間組(temporary tablespace group)Oracle
- Oracle12c中容錯&效能新特性之表空間組Oracle
- oracle 11g 表空間使用率Oracle
- MySQL 8.0表空間新特性簡單實驗MySql
- 10g新特性——表空間重新命名
- MySQL InnoDB表空間加密MySql加密
- oracle10G新特性之臨時表空間組的應用Oracle
- 【ORACLE新特性】11G 分割槽新特性Oracle
- Oracle 11gR1中的表空間加密Oracle加密
- Oracle 11g 新特性Oracle
- MySQL 5.7新特性之線上收縮undo表空間MySql
- 【kingsql分享】表空間加密SQL加密
- TDE 透明表空間加密 Wallet加密
- Oracle表空間Oracle
- oracle 表空間Oracle
- MySQL 8.0.2 新特性 UNDO表空間管理的靈活性提升MySql
- oracle 11g 的新特性Oracle
- [引用分割槽表]Oracle 11g新特性之引用分割槽表Oracle
- Oracle 11g 新特性:只讀表(Read-only)Oracle
- ORACLE 11g臨時表空間收縮的功能Oracle
- Oracle10g新特新:臨時表空間組Oracle
- MySQL 5.7 新特性 共享臨時表空間及臨時表改進MySql