通常的安全应用程序角色是由某一特定过程启用角色,而“Vault保护”指的是为这一角色指定一规则集,如果规则集取值为真则可以启用角色。
在这个案例中,要求只有来某些特定的用户来至某一特定的IP地址的联接才允许启用应用程序角色。
定义由Vault保护的安全应用程序角色的步骤为:
(1)定义规则集和规则;
(2)定义角色,并指定规则集;
(3)为角色授权;
(4)在应用中执行SQL命令启用应用程序角色。
第一步:创建几个测试用户
Log in to SQL*Plus as the Database Vault Account Manager,比如dvsys
conn dvsys/dvsys
create user test_a identified by test_a;
create user test_b identified by test_b;
create user test_c identified by test_c;
conn /as sydba
grant create session to test_a,test_b,test_c;
第二步:定义规则集
begin
DVSYS.DBMS_MACADM.CREATE_RULE_SET(
rule_set_name => 'Can Modify HR.DEPT',
description => 'Rule set to control who can modify dept in the HR.DEPT table',
enabled => 'Y',
eval_options => 1,
audit_options => 0,
fail_options => 1,
fail_message => 'Restricted Command',
fail_code => -20001,
handler_options => 0,
handler => null);
commit;
end;
/
第三步:定义2个rule并添加到第二步中定义的Rule Set中
begin
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Check IP Address',
rule_expr => 'DVF.F$CLIENT_IP = ''192.168.100.10''');
DVSYS.DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Session User',
rule_expr => 'DVF.F$SESSION_USER IN (''TEST_A'', ''TEST_B'')');
commit;
end;
/
将这两个rule添加到Rule Set:Can Modify HR.DEPT
begin
DVSYS.DBMS_MACADM.ADD_RULE_TO_RULE_SET(
rule_set_name => 'Can Modify HR.DEPT',
rule_name => 'Check Session User',
rule_order => 1);
DVSYS.DBMS_MACADM.ADD_RULE_TO_RULE_SET(
rule_set_name => 'Can Modify HR.DEPT',
rule_name => 'Check IP Address',
rule_order => 2);
end;
/
|