首先配置Database Vault,该模块为Oracle自带,只需要添加即可
1、当前数据库为12C 版本号如下:
SQL> select BANNER from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
PL/SQL Release 12.1.0.2.0 - Production
CORE 12.1.0.2.0 Production
TNS for Linux: Version 12.1.0.2.0 - Production
NLSRTL Version 12.1.0.2.0 - Production
2、查看Database Vault是否开启
SQL> select * from v$option where parameter ='Oracle Database Vault';
PARAMETER VALUE CON_ID
------------------------------ ------------------------------ ----------
Oracle Database Vault FALSE 0
3、首先我们手工来配置下Vault,使用system登陆,配置
Oracle Label Security,使用database vault 的前置条件
SQL>@$ORACLE_HOME/rdbms/admin/catols.sql
4、创建一个表空间存储dv 的相关信息
SQL> create tablespace dvt datafile '/u01/app/oracle/oradata/PROD1/dvt01.dbf'size 500M autoextend on maxsize unlimited;
5、配置Database Vault,在执行过程中需要输入 1是database vault的默认表空间,2是DV默认的临时表空间
SQL> @$ORACLE_HOME/rdbms/admin/catmac.sql
输入 1 的值: dvt
输入 2 的值: temp
CREATE USER dvsys IDENTIFIED BY "D_DVSYSPW"
*
第 1 行出现错误:
ORA-01920: 用户名 'DVSYS' 与另外一个用户名或角色名发生冲突
用户已更改。
PL/SQL 过程已成功完成。
授权成功。
6、使用sys用户执行如下脚本,给相关用户赋权
SQL>conn / as sysdba
SQL>alter dvsys identified by dvsys account unlock;
SQL>GRANT CREATE SESSION TO dbv_owner IDENTIFIED BY password;
SQL>GRANT CREATE SESSION TO dbv_owner_backup IDENTIFIED BY password;
SQL>GRANT CREATE SESSION TO dbv_acctmgr IDENTIFIED BY password;
SQL>GRANT CREATE SESSION TO dbv_acctmgr_backup IDENTIFIED BY password
SQL>BEGIN
2 DVSYS.CONFIGURE_DV (
3 dvowner_uname => 'dbv_owner',
4 dvacctmgr_uname => 'dbv_acctmgr');
5 END;
6 /
PL/SQL 过程已成功完成。
SQL>
7、编译失效对象
SQL>@?/rdbms/admin/utlrp.sql
8、启用用dbms_macadm.enable_dv,当让还有个禁用dbms_macadm.disable_dv;
SQL> conn dbv_owner
输入口令:
已连接。
SQL> exec dbms_macadm.enable_dv;
PL/SQL 过程已成功完成。
9、重启数据库
SQL> conn / as sysdba
已连接。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
注意重启前最好把dvsys用户解锁,好处在于可以方便后面测试,如果不解锁重启后dba将无权限给dvsys用户解锁。
10、验证是否生效
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 1426063360 bytes
Fixed Size 2924400 bytes
Variable Size 872415376 bytes
Database Buffers 536870912 bytes
Redo Buffers 13852672 bytes
数据库装载完毕。
数据库已经打开。
SQL> show user
USER 为 "SYS"
SQL> create user t1 identified by t1;
create user t1 identified by t1
*
第 1 行出现错误:
ORA-01031: 权限不足
SQL> select * from v$option where parameter ='Oracle Database Vault';
PARAMETER VALUE CON_ID
------------------------------ ------------------------------ ----------
Oracle Database Vault TRUE 0
已选择 1 行。
SQL>
Database Vault 已经配置完毕。接下来可以创建realms和相关的factors了。
总结:12C的Database Vault对比11g以前配置上简单了很多,不再需要手工执行make 和dbca创建,少了很多的命令,同时取消的操作也加上了disable_dv的存储过程,相比以前复杂的取消操作有很大的提升。