1.新建一個空目錄如下:
C:\Oracle\Wallets\walletTDE
--請保證walletTDE下沒有任何文件。
2. sqlnet.ora中指定上述目錄爲ENCRYPTION_WALLET所在目錄。指定方式如下:
在參數文件C:\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\sqlnet.ora中,按照下面的格式加入信息:
ENCRYPTION_WALLET_LOCATION=
(SOURCE = (METHOD = FILE)
(METHOD_DATA=
(DIRECTORY =C:\Oracle\Wallets\walletTDE)))
加入信息之後,請保存關閉sqlnet.ora文件。
3.重新啓動oracle數據庫服務和偵聽器服務。
net stop OracleServiceORCL
net stop OracleOraDb11g_home1TNSListener
net start OracleServiceORCL
net start OracleOraDb11g_home1TNSListener
4. conn / as SYSDBA登錄之後執行:
SQL>alter system setencryption key identified by "Qwer1234";
這條語句正常執行結果是“系統已更改”或者“Systemaltered”;
執行完之後,C:\Oracle\Wallets\walletTDE目錄下會生成一個wallet文件,即“ewallet.p12”;若該目錄在執行語句之前已經存在該文件,不爲空的話,可能出現“無法自動創建wallet”等錯誤。語句中的"Qwer1234"是用於打開和關閉wallet(即ewallet.p12)的口令, ewallet.p12存放的是主密鑰(primary key),主密鑰是在生成ewallet.p12文件時隨機生成的,ewallet.p12用“Qwer1234”打開之後,主密鑰纔可用;否則主密鑰是不可用的。主密鑰也是用戶不可知的,不能採用文本方式打開ewallet.p12看見主密鑰。“Qwer1234”這個wallet打開關閉口令設置不可太簡單,要同時包含大小寫數字,長度大於等於8,否則設置不成功。
5.執行下述SQL打開wallet,wallet處理打開狀態時,用戶纔可以使用主密鑰:
SQL>ALTER SYSTEM SETENCRYPTION WALLET OPEN IDENTIFIED BY "Qwer1234";
這條語句正常執行結果是“系統已更改”或者“Systemaltered”;
這條語句的目的是打開wallet,當然需要步驟4所設的的口令,才能打開;若將步驟4設置的口令寫錯,則無法打開wallet,也就無法使用主密鑰。
6.HR/HR登錄建帶透明加密列的表,如下
SQL>create tableHR.TEST1(C1 varchar(20) encrypt);
這條語句正常執行結果是“表已創建”,表示表創建成功。其中C1列是透明加密的,加密算法是默認的AES192,加密密鑰是oracle自動生成的表密鑰,表密鑰採用的是主密鑰進行加密存放的,存放在數據文件之內;主密鑰是脫離數據文件,存在在wallet當中,wallet是需要口令纔可以打開的,wallet處於打開狀態纔可以建立加密表。該walllet一直處於打開狀態直至執行ALTER SYSTEM SETENCRYPTION WALLET CLOSE IDENTIFIED BY "Qwer1234";進行關閉
或者oracle實例被關閉。
7.此wallet是加密用的wallet,和客戶端採用wallet進行無用戶名、無口令登錄有所不同。