方法一: 其操作步骤简要概述如下:,下面我们就来聊聊关于学链表存储的收获?接下来我们就一起去了解一下吧!

学链表存储的收获(创建加密表空间的方法对比)

学链表存储的收获

方法一:

其操作步骤简要概述如下:

1. 在sqlnet.ora指定wallet目录

$ cd $ORACLE_HOME/network/admin

$ vi sqlnet.ora

ENCRYPTION_WALLET_LOCATION=

(SOURCE=(METHOD=FILE)(METHOD_DATA=

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

2. 重启实例

SQL > shutdown immediate;

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

,