暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle数据库加密表空间详解及操作过程

Oracle微学堂 2018-01-26
1841

01在操作系统创建WALLET路径

mkdir -p u01/app/oracle/product/11.2.0/dbhome_1/wallets

02指定WALLET存放的路径

vi $ORACLE_HOME/network/admin/sqlnet.ora

ENCRYPTION_WALLET_LOCATION=

 (SOURCE=

  (METHOD=file)

   (METHOD_DATA=

    (DIRECTORY=/u01/app/oracle/product/11.2.0/dbhome_1/wallets)))

03查看Oracle版本及为WALLET设置密码

SQL> SHOW PARAMETER COMPATIBLE

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

compatible                           string      11.2.0.0.0

SQL> ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "123456";

System altered.

04打开WALLET

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup mount;

ORACLE instance started.

Total System Global Area  422670336 bytes

Fixed Size                  1345380 bytes

Variable Size             314575004 bytes

Database Buffers          100663296 bytes

Redo Buffers                6086656 bytes

Database mounted.

SQL> ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "123456";

System altered.

SQL> ALTER DATABASE OPEN;

Database altered.

05创建表空间的同时制定加密算法及不指定加密算法

SQL> CREATE TABLESPACE TBSTEST01 DATAFILE '/Oradatafile/DBData/tbstest0101.dbf'  SIZE 100M ENCRYPTION USING '3DES168' DEFAULT STORAGE(ENCRYPT);

Tablespace created.


SQL> CREATE TABLESPACE TBSTEST02 DATAFILE '/Oradatafile/DBData/tbstest0201.dbf' SIZE 100M ENCRYPTION DEFAULT STORAGE(ENCRYPT);

Tablespace created.

06查看WALLET是否开启

SQL> SELECT * FROM V$ENCRYPTION_WALLET;


WRL_TYPE

--------------------

WRL_PARAMETER

--------------------------------------------------------------------------------

STATUS

------------------

file

/Orasoftware/DBSoftware/oracle/product/11.2.0/dbhome_1/wallets

OPEN

07查看所有的表空间是否开启加密

SQL> SELECT TABLESPACE_NAME, ENCRYPTED FROM DBA_TABLESPACES;


TABLESPACE_NAME                ENC

------------------------------ ---

SYSTEM                         NO

SYSAUX                         NO

UNDOTBS1                       NO

USERS                          NO

EXAMPLE                        NO

TEST01                         NO

TEST02                         NO

TEST03                         NO

TEST04                         NO

TEST05                         NO

TEST07                         NO


TABLESPACE_NAME                ENC

------------------------------ ---

TEST06                         NO

TEMP1                          NO

FBDA                           NO

UNDOTBS2_SMALL                 NO

TBSTEST01                      YES

TBSTEST02                      YES

SQL> SELECT * FROM V$ENCRYPTED_TABLESPACES;

       TS# ENCRYPT ENC

---------- ------- ---

ENCRYTPEDKEY

----------------------------------------------------------------

MASTERKEYID                      BLOCKS_ENCRYPTED BLOCKS_DECRYPTED

-------------------------------- ---------------- ----------------

        20 3DES168 YES

426E5D40DDA861C60A40D4D17FC204ADC5CB0B0699B9B5610000000000000000

AEB285F3BE9C4FADBF5CAECD59CABA1F                0                0


        21 AES128  YES

A066FDE72F7A94C4893F2D945AF8EAE700000000000000000000000000000000

AEB285F3BE9C4FADBF5CAECD59CABA1F                0                0

       TS# ENCRYPT ENC

---------- ------- ---

ENCRYTPEDKEY

----------------------------------------------------------------

MASTERKEYID                      BLOCKS_ENCRYPTED BLOCKS_DECRYPTED

-------------------------------- ---------------- ---------------- 

08关闭数据库,看钱包的状态

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup;

ORACLE instance started.


Total System Global Area  422670336 bytes

Fixed Size                  1345380 bytes

Variable Size             314575004 bytes

Database Buffers          100663296 bytes

Redo Buffers                6086656 bytes

Database mounted.

Database opened.

SQL>  SELECT * FROM V$ENCRYPTION_WALLET;

WRL_TYPE

--------------------

WRL_PARAMETER

--------------------------------------------------------------------------------

STATUS

------------------

file

/Orasoftware/DBSoftware/oracle/product/11.2.0/dbhome_1/wallets

CLOSED

表明钱包不是岁库启动而启动的

09创建用户,使用加密的表空间

SQL> create user liushiming identified by liushiming default tablespace TBSTEST01;

User created.

SQL> grant connect,resource to liushiming;

Grant succeeded.

SQL> conn liushiming/liushiming;

Connected.

SQL> create table t (id number,name varchar2(10));

Table created.

QL> insert into t values (1,'a');

insert into t values (1,'a')

            *

ERROR at line 1:

ORA-28365: wallet is not open

发现钱包没开启

10开启钱包

SQL> conn as sysdba

Connected.

SQL> ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "123456";

System altered.

SQL> SELECT * FROM V$ENCRYPTION_WALLET;

WRL_TYPE

--------------------

WRL_PARAMETER

--------------------------------------------------------------------------------

STATUS

------------------

file

/Orasoftware/DBSoftware/oracle/product/11.2.0/dbhome_1/wallets

OPEN

SQL> conn liushiming/liushiming

Connected.

SQL> insert into t values (1,'a');


1 row created.

SQL> commit;

Commit complete.可以插入数据了

11维护加密表空间

删除加密表空间

DROP TABLESPACE TBSTEST01 INCLUDING CONTENTS AND DATAFILES;

DROP TABLESPACE TBSTEST02 INCLUDING CONTENTS AND DATAFILES;


关闭WALLET

ALTER SYSTEM SET ENCRYPTION WALLET CLOSE IDENTIFIED BY "123456";--先别关闭


另外的方式创建WALLET及显示钱包文件内容

orapki wallet create -wallet /u01/app/oracle/product/11.2.0/dbhome_1/wallets -auto_login -pwd 123456

orapki wallet display -wallet /Orasoftware/DBSoftware/oracle/product/11.2.0/dbhome_1/wallets

扫描二维码关注我的微学堂

搜索刘老师微信号:Rman-2014,备注“Oracle学习与咨询”,即可添加好友;或者扫描下面二维码,关注我的“微学堂”公众号,了解最新OCP认证动态、题库及答案解析、培训机构及讲师介绍、课堂授课内容等。每天还有一篇技术文章发布哦!

文章转载自Oracle微学堂,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论