{"id":11441,"date":"2018-07-13T19:31:29","date_gmt":"2018-07-13T17:31:29","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/database-vault-rules-rule-sets-and-command-rules\/"},"modified":"2023-06-09T17:00:58","modified_gmt":"2023-06-09T15:00:58","slug":"database-vault-rules-rule-sets-and-command-rules","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/database-vault-rules-rule-sets-and-command-rules\/","title":{"rendered":"Database Vault : Rules, Rule Sets and Command Rules"},"content":{"rendered":"<p><strong>By Mouhamadou Diaw<\/strong><\/p>\n<p>In a previous <a href=\"https:\/\/www.dbi-services.com\/blog\/oracle-database-vault-realm-in-a-pluggable-database\/\" target=\"_blank\" rel=\"noopener\"> blog <\/a> I talked about protecting data using Realms. With Database Vault we can also protect our database against some SQL statements. These statements can include SELECT, ALTER SYSTEM, database definition language (DDL), and data manipulation language (DML) statements.<br \/>\nWe can do this with Command Rules. In this blog I am demonstrating how we can use a Command Rule to prevent SYS from creating a new pluggable database in a multitenant environment.<\/p>\n<p>Before starting the demonstration, we can see that there are some predefined Command Rules which apply to all users.<\/p>\n<div>\n<div id=\"highlighter_806679\" class=\"syntaxhighlighter  sql\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<div class=\"line number8 index7 alt1\">8<\/div>\n<div class=\"line number9 index8 alt2\">9<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"sql plain\">SQL&gt; show <\/code><code class=\"sql color2\">user<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"sql color2\">USER<\/code> <code class=\"sql keyword\">is<\/code> <code class=\"sql string\">\"C##DBV_OWNER_ROOT\"<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"sql plain\">SQL&gt; show con_name<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"sql plain\">CON_NAME<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"sql comments\">------------------------------<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"sql plain\">PDB1<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"sql plain\">SQL&gt; <\/code><code class=\"sql keyword\">SELECT<\/code> <code class=\"sql plain\">COMMAND, RULE_SET_NAME <\/code><code class=\"sql keyword\">FROM<\/code> <code class=\"sql plain\">DVSYS.DBA_DV_COMMAND_RULE;<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"sql plain\">COMMAND\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 RULE_SET_NAME<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"sql comments\">-------------------- --------------------------------------------------<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"sql keyword\">ALTER<\/code> <code class=\"sql plain\">PROFILE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Can Maintain Accounts\/Profiles<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"sql keyword\">ALTER<\/code> <code class=\"sql plain\">SYSTEM\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Allow Fine Grained Control <\/code><code class=\"sql keyword\">of<\/code> <code class=\"sql plain\">System Parameters<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"sql keyword\">ALTER<\/code> <code class=\"sql color2\">USER<\/code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <code class=\"sql plain\">Can Maintain Own Account<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"sql plain\">CHANGE <\/code><code class=\"sql keyword\">PASSWORD<\/code>\u00a0\u00a0\u00a0\u00a0\u00a0 <code class=\"sql plain\">Can Maintain Own Account<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"sql keyword\">CREATE<\/code> <code class=\"sql plain\">PROFILE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Can Maintain Accounts\/Profiles<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"sql keyword\">CREATE<\/code> <code class=\"sql color2\">USER<\/code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <code class=\"sql plain\">Can Maintain Accounts\/Profiles<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"sql keyword\">DROP<\/code> <code class=\"sql plain\">PROFILE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Can Maintain Accounts\/Profiles<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"sql keyword\">DROP<\/code> <code class=\"sql color2\">USER<\/code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <code class=\"sql plain\">Can Maintain Accounts\/Profiles<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"sql plain\">8 <\/code><code class=\"sql keyword\">rows<\/code> <code class=\"sql plain\">selected.<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"sql plain\">SQL&gt;<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>Because of these default Command Rules, for example, user sys cannot create a user once Database Vault is enabled.<\/p>\n<div>\n<div id=\"highlighter_552942\" class=\"syntaxhighlighter  sql\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"sql plain\">SQL&gt; conn sys\/root@pdb1 <\/code><code class=\"sql keyword\">as<\/code> <code class=\"sql plain\">sysdba<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"sql plain\">Connected.<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"sql plain\">SQL&gt; <\/code><code class=\"sql keyword\">create<\/code> <code class=\"sql color2\">user<\/code> <code class=\"sql plain\">myuser identified <\/code><code class=\"sql keyword\">by<\/code> <code class=\"sql plain\">test;<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"sql keyword\">create<\/code> <code class=\"sql color2\">user<\/code> <code class=\"sql plain\">myuser identified <\/code><code class=\"sql keyword\">by<\/code> <code class=\"sql plain\">test<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"sql spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"sql plain\">*<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"sql plain\">ERROR <\/code><code class=\"sql keyword\">at<\/code> <code class=\"sql plain\">line 1:<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"sql plain\">ORA-01031: insufficient <\/code><code class=\"sql keyword\">privileges<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>To grant a user the ability to use these commands, you can grant the user the role that the rule set checks.<\/p>\n<div>\n<div id=\"highlighter_335555\" class=\"syntaxhighlighter  sql\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<div class=\"line number8 index7 alt1\">8<\/div>\n<div class=\"line number9 index8 alt2\">9<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"sql plain\">SQL&gt; <\/code><code class=\"sql keyword\">SELECT<\/code> <code class=\"sql plain\">PRIVILEGE <\/code><code class=\"sql keyword\">FROM<\/code> <code class=\"sql plain\">DBA_SYS_PRIVS <\/code><code class=\"sql keyword\">WHERE<\/code> <code class=\"sql plain\">GRANTEE = <\/code><code class=\"sql string\">'DV_ACCTMGR'<\/code><code class=\"sql plain\">;<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"sql plain\">PRIVILEGE<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"sql comments\">----------------------------------------<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"sql keyword\">DROP<\/code> <code class=\"sql plain\">PROFILE<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"sql keyword\">ALTER<\/code> <code class=\"sql plain\">PROFILE<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"sql keyword\">ALTER<\/code> <code class=\"sql color2\">USER<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"sql keyword\">CREATE<\/code> <code class=\"sql plain\">PROFILE<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"sql keyword\">CREATE<\/code> <code class=\"sql color2\">USER<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"sql keyword\">CREATE<\/code> <code class=\"sql plain\">SESSION<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"sql keyword\">DROP<\/code> <code class=\"sql color2\">USER<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"sql plain\">7 <\/code><code class=\"sql keyword\">rows<\/code> <code class=\"sql plain\">selected.<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"sql plain\">SQL&gt;<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>To allow sys to create a user we can grant the DV_ACCTMGR role to SYS<\/p>\n<div>\n<div id=\"highlighter_318886\" class=\"syntaxhighlighter  sql\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<div class=\"line number8 index7 alt1\">8<\/div>\n<div class=\"line number9 index8 alt2\">9<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"sql plain\">SQL&gt; show <\/code><code class=\"sql color2\">user<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"sql color2\">USER<\/code> <code class=\"sql keyword\">is<\/code> <code class=\"sql string\">\"C##DBV_ACCTMGR_ROOT\"<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"sql plain\">SQL&gt; show con_name<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"sql plain\">CON_NAME<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"sql comments\">------------------------------<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"sql plain\">PDB1<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"sql plain\">SQL&gt;<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"sql plain\">SQL&gt; <\/code><code class=\"sql keyword\">grant<\/code>\u00a0 <code class=\"sql plain\">DV_ACCTMGR <\/code><code class=\"sql keyword\">to<\/code> <code class=\"sql plain\">sys;<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"sql keyword\">Grant<\/code> <code class=\"sql plain\">succeeded.<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>And now SYS can create a user<\/p>\n<div>\n<div id=\"highlighter_818571\" class=\"syntaxhighlighter  sql\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"sql plain\">SQL&gt; conn sys\/root@pdb1 <\/code><code class=\"sql keyword\">as<\/code> <code class=\"sql plain\">sysdba<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"sql plain\">Connected.<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"sql plain\">SQL&gt; <\/code><code class=\"sql keyword\">create<\/code> <code class=\"sql color2\">user<\/code> <code class=\"sql plain\">myuser identified <\/code><code class=\"sql keyword\">by<\/code> <code class=\"sql plain\">test;<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"sql color2\">User<\/code> <code class=\"sql plain\">created.<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"sql plain\">SQL&gt;<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>Before starting the demonstration let&#8217;s verify that user SYS, by default, can create a pluggable database<\/p>\n<div>\n<div id=\"highlighter_640872\" class=\"syntaxhighlighter  sql\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<div class=\"line number8 index7 alt1\">8<\/div>\n<div class=\"line number9 index8 alt2\">9<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"sql plain\">SQL&gt; conn sys <\/code><code class=\"sql keyword\">as<\/code> <code class=\"sql plain\">sysdba<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"sql plain\">Enter <\/code><code class=\"sql keyword\">password<\/code><code class=\"sql plain\">:<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"sql plain\">Connected.<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"sql plain\">SQL&gt; show con_name<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"sql plain\">CON_NAME<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"sql comments\">------------------------------<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"sql plain\">CDB$ROOT<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"sql plain\">SQL&gt; <\/code><code class=\"sql keyword\">create<\/code> <code class=\"sql plain\">pluggable <\/code><code class=\"sql keyword\">database<\/code> <code class=\"sql plain\">PDB2 ADMIN <\/code><code class=\"sql color2\">USER<\/code> <code class=\"sql plain\">pdb2adm IDENTIFIED <\/code><code class=\"sql keyword\">BY<\/code> <code class=\"sql plain\">root create_file_dest=<\/code><code class=\"sql string\">'\/u01\/app\/oracle\/oradata\/DBSEC\/PDB2'<\/code><code class=\"sql plain\">;<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"sql plain\">Pluggable <\/code><code class=\"sql keyword\">database<\/code> <code class=\"sql plain\">created.<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"sql plain\">SQL&gt;<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>To prevent sys from creating a pluggable database, we are first going to create a RULE. This rule will determine when the command rule will be fired.<\/p>\n<div>\n<div id=\"highlighter_786166\" class=\"syntaxhighlighter  sql\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"sql plain\">SQL&gt; <\/code><code class=\"sql keyword\">exec<\/code> <code class=\"sql plain\">DVSYS.DBMS_MACADM.CREATE_RULE(rule_name =&gt; <\/code><code class=\"sql string\">'MY_PDB_RULE'<\/code><code class=\"sql plain\">, <\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"sql spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"sql plain\">rule_expr =&gt; <\/code><code class=\"sql string\">'SYS_CONTEXT('<\/code><code class=\"sql string\">'USERENV'<\/code><code class=\"sql string\">', '<\/code><code class=\"sql string\">'SESSION_USER'<\/code><code class=\"sql string\">') != '<\/code><code class=\"sql string\">'SYS'<\/code><code class=\"sql string\">''<\/code><code class=\"sql plain\">);<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"sql plain\">PL\/SQL <\/code><code class=\"sql keyword\">procedure<\/code> <code class=\"sql plain\">successfully completed.<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"sql plain\">SQL&gt;<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>After we have to create a RULE SET which is a collection of one or more rules. We can associate a rule set with a realm authorization, factor assignment, command rule, or secure application role.<\/p>\n<div>\n<div id=\"highlighter_163129\" class=\"syntaxhighlighter  sql\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<div class=\"line number8 index7 alt1\">8<\/div>\n<div class=\"line number9 index8 alt2\">9<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"sql plain\">SQL&gt; <\/code><code class=\"sql keyword\">exec<\/code> <code class=\"sql plain\">DVSYS.DBMS_MACADM.CREATE_RULE_SET(rule_set_name =&gt; <\/code><code class=\"sql string\">'MY_PDB_RULESET'<\/code><code class=\"sql plain\">, <\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"sql spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"sql plain\">description =&gt; <\/code><code class=\"sql string\">' About managing Pdbs'<\/code><code class=\"sql plain\">, <\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"sql spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"sql plain\">enabled =&gt; DBMS_MACUTL.G_YES, eval_options =&gt; DBMS_MACUTL.G_RULESET_EVAL_ANY,<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"sql spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"sql plain\">audit_options =&gt; DBMS_MACUTL.G_RULESET_AUDIT_FAIL + DBMS_MACUTL.G_RULESET_AUDIT_SUCCESS, <\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"sql spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"sql plain\">fail_options =&gt; DBMS_MACUTL.G_RULESET_FAIL_SILENT, fail_message =&gt; <\/code><code class=\"sql string\">''<\/code><code class=\"sql plain\">, <\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"sql spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"sql plain\">fail_code =&gt; <\/code><code class=\"sql string\">''<\/code><code class=\"sql plain\">, <\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"sql spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"sql plain\">handler_options =&gt; DBMS_MACUTL.G_RULESET_HANDLER_OFF, <\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"sql spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"sql plain\">handler =&gt; <\/code><code class=\"sql string\">''<\/code><code class=\"sql plain\">,<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"sql spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"sql plain\">is_static =&gt; <\/code><code class=\"sql keyword\">FALSE<\/code><code class=\"sql plain\">);<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"sql plain\">PL\/SQL <\/code><code class=\"sql keyword\">procedure<\/code> <code class=\"sql plain\">successfully completed.<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"sql plain\">SQL&gt;<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>We then add the RULE to the RULE SET<\/p>\n<div>\n<div id=\"highlighter_183213\" class=\"syntaxhighlighter  sql\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<div class=\"line number8 index7 alt1\">8<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"sql keyword\">BEGIN<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"sql plain\">DVSYS.DBMS_MACADM.ADD_RULE_TO_RULE_SET(<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"sql spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"sql plain\">rule_set_name =&gt; <\/code><code class=\"sql string\">'MY_PDB_RULESET'<\/code><code class=\"sql plain\">,<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"sql spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"sql plain\">rule_name =&gt; <\/code><code class=\"sql string\">'MY_PDB_RULE'<\/code><code class=\"sql plain\">);<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"sql keyword\">END<\/code><code class=\"sql plain\">;<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"sql spaces\">\u00a0\u00a0\u00a0<\/code><code class=\"sql plain\">\/<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"sql plain\">PL\/SQL <\/code><code class=\"sql keyword\">procedure<\/code> <code class=\"sql plain\">successfully completed.<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>And finally create a COMMAND RULE which will prevent SYS to execute a CREATE PLUGGABLE DATABASE statement<\/p>\n<div>\n<div id=\"highlighter_172274\" class=\"syntaxhighlighter  sql\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<div class=\"line number8 index7 alt1\">8<\/div>\n<div class=\"line number9 index8 alt2\">9<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"sql plain\">SQL&gt; <\/code><code class=\"sql keyword\">exec<\/code> <code class=\"sql plain\">DVSYS.DBMS_MACADM.CREATE_COMMAND_RULE(command=&gt; <\/code><code class=\"sql string\">'CREATE PLUGGABLE DATABASE'<\/code><code class=\"sql plain\">, <\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"sql spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"sql plain\">rule_set_name =&gt; <\/code><code class=\"sql string\">'MY_PDB_RULESET'<\/code><code class=\"sql plain\">, <\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"sql spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"sql plain\">object_owner =&gt; DBMS_ASSERT.ENQUOTE_NAME(<\/code><code class=\"sql string\">'%'<\/code><code class=\"sql plain\">,<\/code><code class=\"sql keyword\">FALSE<\/code><code class=\"sql plain\">), <\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"sql spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"sql plain\">object_name =&gt; <\/code><code class=\"sql string\">'%'<\/code><code class=\"sql plain\">,<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"sql spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"sql plain\">enabled =&gt; <\/code><code class=\"sql string\">'Y'<\/code><code class=\"sql plain\">);<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"sql plain\">PL\/SQL <\/code><code class=\"sql keyword\">procedure<\/code> <code class=\"sql plain\">successfully completed.<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"sql plain\">SQL&gt;<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>And now if we try to create a Pdb with SYS<\/p>\n<div>\n<div id=\"highlighter_761718\" class=\"syntaxhighlighter  sql\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<div class=\"line number8 index7 alt1\">8<\/div>\n<div class=\"line number9 index8 alt2\">9<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1 highlighted\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"sql plain\">SQL&gt; show <\/code><code class=\"sql color2\">user<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"sql color2\">USER<\/code> <code class=\"sql keyword\">is<\/code> <code class=\"sql string\">\"SYS\"<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"sql plain\">SQL&gt; show con_name<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"sql plain\">CON_NAME<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"sql comments\">------------------------------<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"sql plain\">CDB$ROOT<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"sql plain\">SQL&gt;\u00a0 <\/code><code class=\"sql keyword\">CREATE<\/code> <code class=\"sql plain\">PLUGGABLE <\/code><code class=\"sql keyword\">DATABASE<\/code> <code class=\"sql plain\">PDB3 ADMIN <\/code><code class=\"sql color2\">USER<\/code> <code class=\"sql plain\">pdb3adm IDENTIFIED <\/code><code class=\"sql keyword\">BY<\/code> <code class=\"sql plain\">root create_file_dest=<\/code><code class=\"sql string\">'\/u01\/app\/oracle\/oradata\/DBSEC\/PDB3'<\/code><code class=\"sql plain\">;<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"sql spaces\">\u00a0<\/code><code class=\"sql keyword\">CREATE<\/code> <code class=\"sql plain\">PLUGGABLE <\/code><code class=\"sql keyword\">DATABASE<\/code> <code class=\"sql plain\">PDB3 ADMIN <\/code><code class=\"sql color2\">USER<\/code> <code class=\"sql plain\">pdb3adm IDENTIFIED <\/code><code class=\"sql keyword\">BY<\/code> <code class=\"sql plain\">root create_file_dest=<\/code><code class=\"sql string\">'\/u01\/app\/oracle\/oradata\/DBSEC\/PDB3'<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"sql plain\">*<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"sql plain\">ERROR <\/code><code class=\"sql keyword\">at<\/code> <code class=\"sql plain\">line 1:<\/code><\/div>\n<div class=\"line number12 index11 alt1 highlighted\"><code class=\"sql plain\">ORA-47400: Command <\/code><code class=\"sql keyword\">Rule<\/code> <code class=\"sql plain\">violation <\/code><code class=\"sql keyword\">for<\/code> <code class=\"sql keyword\">CREATE<\/code> <code class=\"sql plain\">PLUGGABLE <\/code><code class=\"sql keyword\">DATABASE<\/code> <code class=\"sql keyword\">on<\/code> <code class=\"sql plain\">PDB3<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"sql plain\">SQL&gt;<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>By Mouhamadou Diaw In a previous blog I talked about protecting data using Realms. With Database Vault we can also protect our database against some SQL statements. These statements can include SELECT, ALTER SYSTEM, database definition language (DDL), and data manipulation language (DML) statements. We can do this with Command Rules. In this blog I [&hellip;]<\/p>\n","protected":false},"author":27,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229],"tags":[209,1398,1384,353],"type_dbi":[],"class_list":["post-11441","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring","tag-oracle-12c","tag-oracle-database-vault","tag-oracle-security","tag-pluggable-database"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Database Vault : Rules, Rule Sets and Command Rules - dbi Blog<\/title>\n<meta name=\"description\" content=\"Oracle Database Vault, oracle security,Oracle 12c, Pluggable database\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/database-vault-rules-rule-sets-and-command-rules\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Database Vault : Rules, Rule Sets and Command Rules\" \/>\n<meta property=\"og:description\" content=\"Oracle Database Vault, oracle security,Oracle 12c, Pluggable database\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/database-vault-rules-rule-sets-and-command-rules\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-07-13T17:31:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-09T15:00:58+00:00\" \/>\n<meta name=\"author\" content=\"Oracle Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oracle Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/database-vault-rules-rule-sets-and-command-rules\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/database-vault-rules-rule-sets-and-command-rules\/\"},\"author\":{\"name\":\"Oracle Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"headline\":\"Database Vault : Rules, Rule Sets and Command Rules\",\"datePublished\":\"2018-07-13T17:31:29+00:00\",\"dateModified\":\"2023-06-09T15:00:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/database-vault-rules-rule-sets-and-command-rules\/\"},\"wordCount\":284,\"commentCount\":0,\"keywords\":[\"Oracle 12c\",\"Oracle Database Vault\",\"oracle security\",\"Pluggable Database\"],\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/database-vault-rules-rule-sets-and-command-rules\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/database-vault-rules-rule-sets-and-command-rules\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/database-vault-rules-rule-sets-and-command-rules\/\",\"name\":\"Database Vault : Rules, Rule Sets and Command Rules - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2018-07-13T17:31:29+00:00\",\"dateModified\":\"2023-06-09T15:00:58+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"description\":\"Oracle Database Vault, oracle security,Oracle 12c, Pluggable database\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/database-vault-rules-rule-sets-and-command-rules\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/database-vault-rules-rule-sets-and-command-rules\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/database-vault-rules-rule-sets-and-command-rules\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Database Vault : Rules, Rule Sets and Command Rules\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\",\"name\":\"Oracle Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"caption\":\"Oracle Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Database Vault : Rules, Rule Sets and Command Rules - dbi Blog","description":"Oracle Database Vault, oracle security,Oracle 12c, Pluggable database","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/database-vault-rules-rule-sets-and-command-rules\/","og_locale":"en_US","og_type":"article","og_title":"Database Vault : Rules, Rule Sets and Command Rules","og_description":"Oracle Database Vault, oracle security,Oracle 12c, Pluggable database","og_url":"https:\/\/www.dbi-services.com\/blog\/database-vault-rules-rule-sets-and-command-rules\/","og_site_name":"dbi Blog","article_published_time":"2018-07-13T17:31:29+00:00","article_modified_time":"2023-06-09T15:00:58+00:00","author":"Oracle Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oracle Team","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/database-vault-rules-rule-sets-and-command-rules\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/database-vault-rules-rule-sets-and-command-rules\/"},"author":{"name":"Oracle Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"headline":"Database Vault : Rules, Rule Sets and Command Rules","datePublished":"2018-07-13T17:31:29+00:00","dateModified":"2023-06-09T15:00:58+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/database-vault-rules-rule-sets-and-command-rules\/"},"wordCount":284,"commentCount":0,"keywords":["Oracle 12c","Oracle Database Vault","oracle security","Pluggable Database"],"articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/database-vault-rules-rule-sets-and-command-rules\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/database-vault-rules-rule-sets-and-command-rules\/","url":"https:\/\/www.dbi-services.com\/blog\/database-vault-rules-rule-sets-and-command-rules\/","name":"Database Vault : Rules, Rule Sets and Command Rules - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2018-07-13T17:31:29+00:00","dateModified":"2023-06-09T15:00:58+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"description":"Oracle Database Vault, oracle security,Oracle 12c, Pluggable database","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/database-vault-rules-rule-sets-and-command-rules\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/database-vault-rules-rule-sets-and-command-rules\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/database-vault-rules-rule-sets-and-command-rules\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Database Vault : Rules, Rule Sets and Command Rules"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee","name":"Oracle Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","caption":"Oracle Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/11441","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=11441"}],"version-history":[{"count":1,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/11441\/revisions"}],"predecessor-version":[{"id":25775,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/11441\/revisions\/25775"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=11441"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=11441"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=11441"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=11441"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}