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认证动态、题库及答案解析、培训机构及讲师介绍、课堂授课内容等。每天还有一篇技术文章发布哦!





