重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6384|回复: 1
打印 上一主题 下一主题

[Oracle] 11g 创建加密表空间的方法对比

[复制链接]
跳转到指定楼层
楼主
发表于 2017-10-14 12:05:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法一:

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

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


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

沙发
 楼主| 发表于 2019-8-17 11:26:02 | 只看该作者
这个主要是钱夹的搜索位置默认为一下所导致:

sqlnet.ora的encryption_wallet_location参数
sqlnet.ora的wallet_location参数
$ORACLE_BASE/admin/db_unique_name/wallet
$ORACLE_HOME/admin/db_unique_name/wallet

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-11-1 14:19 , Processed in 0.105948 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表