11g 建立加密表空間 的方法對比

方法一:sql

其操做步驟簡要概述以下:oracle

1. 在sqlnet.ora指定wallet目錄app

$ cd $ORACLE_HOME/network/adminide

$ vi sqlnet.oraui

ENCRYPTION_WALLET_LOCATION=加密

(SOURCE=(METHOD=FILE)(METHOD_DATA=spa

(DIRECTORY=/u01/app/oracle/product/11.1.0/db_1/)))索引

2. 重啓實例io

SQL > shutdown immediate;table

SQL > startup;

3. 設置密碼

SQL > alter system set encryption key identified by oracle123;

4. 建立加密表空間

SQL > create tablespace sectbs datafile '/u01/app/oracle/oradata/PROD/sec_tbs.dbf' size 100m encryption using '3DES168' default storage(encrypt);

5. 經過視圖驗證表空間是否爲加密

SQL > select tablespace_name,status,encrypted from dba_tablespaces where tablespace_name='SECTBS';

該方法的隱患就是修改sqlnet.ora文件。修改該文件後須要重啓實例,再設置encryption key才能生效。若是是生產環境此操做就須要申請檢修了,而不是隨時能夠添加。並且該修改有必定的概率引發監聽器沒法啓動。須要刪除sqlnet.ora中關於錢包的設置才能恢復監聽器。這樣的話就相互矛盾了。因此推薦下面的方法

方法二:

推薦! 不須要重啓實例,也不會由於修改sqlnet.ora致使監聽沒法啓動

1. 查看wallet的默認位置:

SQL> select * from v$encryption_wallet;

WRL_TYPE WRL_PARAMETER STATUS

---------

file /u01/app/oracle/admin/PROD/wallet CLOSED

2. 驗證是否存在該目錄,沒有則手工建立

SQL > !ls -l /u01/app/oracle/admin/PROD/wallet

ls: /u01/app/oracle/admin/PROD/wallet: No such file or directory

$ cd /u01/app/oracle/admin/PROD

$ mkdir wallet

$ chmod -R 775 wallet

3. 設置密碼

SQL > alter system set encryption key identified by oracle123;

4. 建立加密表空間

SQL > create tablespace sectbs datafile '/u01/app/oracle/oradata/PROD/sectbs.dbf' size 100m encryption using '3DES168' default storage(encrypt);

5. 經過視圖驗證表空間是否爲加密

SQL > select tablespace_name,status,encrypted from dba_tablespaces where tablespace_name='SECTEST';

6. 將須要加密的表移到加密表空間

SQL > alter table [table]

move tablespace sectbs;

7. 重建索引

SQL > alter index rebuild

這個主要是錢夾的搜索位置默認爲一下所致使:

sqlnet.ora的encryption_wallet_location參數

sqlnet.ora的wallet_location參數

$ORACLE_BASE/admin/db_unique_name/wallet

$ORACLE_HOME/admin/db_unique_name/wallet

相關文章
相關標籤/搜索