oracle数据透明加密,使用ORACLE 透明数据加密 TDE
1.更新 sqlnet.ora 文件以包含一個 ENCRYPTED_WALLET_LOCATION 條目。
打開$ORACLE_HOME/network/admin目錄下的sqlnet.ora添加以下條目:
ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=D:\oracle\product\10.2.0\db_1\admin)))
指定萬能加密密鑰創建的目錄。
2.創建萬能加密密鑰
sqlplus /nolog
connect / as sysdba
alter system set key identified by "welcome1";
關閉數據庫后需要重新打開密鑰alter system set wallet open identified by "welcome1";3.創建測試表并插入數據。
create table cust_payment_info
(first_name varchar2(11),
last_name varchar2(10),
order_number number(5),
credit_card_number varchar2(16) ENCRYPT NO SALT,
active_card varchar2(3));
insert into cust_payment_info values
('Jon', 'Oldfield', 10001, '5446959708812985','YES');
insert into cust_payment_info values
('Chris', 'White', 10002, '5122358046082560','YES');
insert into cust_payment_info values
('Alan', 'Squire', 10003, '5595968943757920','YES');
insert into cust_payment_info values
('Mike', 'Anderson', 10004, '4929889576357400','YES');
insert into cust_payment_info values
('Annie', 'Schmidt', 10005, '4556988708236902','YES');
insert into cust_payment_info values
('Elliott', 'Meyer', 10006, '374366599711820','YES');
insert into cust_payment_info values
('Celine', 'Smith', 10007, '4716898533036','YES');
insert into cust_payment_info values
('Steve', 'Haslam', 10008, '340975900376858','YES');
insert into cust_payment_info values
('Albert', 'Einstein', 10009, '310654305412389','YES');
4.可以再加密的列上創建索引。
create index cust_payment_info_idx on cust_payment_info (credit_card_number);
5.查詢和更新
select * from CUST_PAYMENT_INFO where CREDIT_CARD_NUMBER? = '4556988708236902';
update oe.CUST_PAYMENT_INFO set ACTIVE_CARD='NO' where CREDIT_CARD_NUMBER='4556988708236902';
6.查看加密的列
select * from user_encrypted_columns;
總結:
TDE透明數據加密,因為對SQL來說是透明的,所以要驗證是否加密,只能用LogMiner查看日志來驗證。它意義在于,數據保存在磁盤上是加密的,如果有人復制了的數據文件,在里面是看不到加密數據的。
總結
以上是生活随笔為你收集整理的oracle数据透明加密,使用ORACLE 透明数据加密 TDE的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Set和Map数据结构。
- 下一篇: Compass实战 站内搜索