oracle 外部程序安全,Oracle Database Vault --设计由 Vault保护的安全应用程序角色

第五步:给角色授权

创建角色后,可对此角色授权,如执行某一程序包的执行权限,某些管理权限等。这些权限只能在角色启用时才能利用。

SQL> conn hr/hr

已连接。

SQL> select *from dept;

DEPTNO     NAME

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

1000       总经理

1001       市场部

1002       财务部

1003       人力资源部

SQL> grant select on dept to dept_mgmt;

授权成功。

SQL>

在程序中执行如下语句启用Vault保护的安全应用程序角色:

execute DVSYS.DBMS_MACSEC_ROLES.SET_ROLE('DEPT_MGMT');

第六步:测试

在上面的规则里面,我们定义了test_a、test_b可以从192.168.100.1使用角色DEPT_MGMT.那么我先看看从本地(127.0.0.1)上行不?

SQL> conn test_a/test_a@ora10g

已连接。

SQL> select DVF.F$CLIENT_IP,USER from dual;

F$CLIENT_IP    USER

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

127.0.0.1      TEST_A

SQL> select * from hr.dept;

select * from hr.dept

*

第 1 行出现错误:

ORA-00942: 表或视图不存在

SQL> EXEC DVSYS.DBMS_MACSEC_ROLES.SET_ROLE('DEPT_MGMT')

BEGIN DVSYS.DBMS_MACSEC_ROLES.SET_ROLE('DEPT_MGMT'); END;

*

第 1 行出现错误:

ORA-47306: -20001: Restricted Command

ORA-06512: 在 "DVSYS.DBMS_MACUTL", line 38

ORA-06512: 在 "DVSYS.DBMS_MACUTL", line 389

ORA-06512: 在 "DVSYS.DBMS_MACSEC", line 232

ORA-06512: 在 "DVSYS.ROLE_IS_ENABLED", line 4

ORA-06512: 在 "DVSYS.DBMS_MACSEC_ROLES", line 24

ORA-06512: 在 line 1

SQL>

再到192.168.100.10这个server上看看:

[oracle@rac01] /oracle> sqlplus /nolog

SQL> conn test_a/test_a@ora10g

Connected.

SQL> EXEC DVSYS.DBMS_MACSEC_ROLES.SET_ROLE('DEPT_MGMT');

PL/SQL procedure successfully completed.

SQL> select * from hr.dept;

DEPTNO     NAME

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

1000       总经理

1001       市场部

1002       财务部

1003       人力资源部

SQL>

SQL> conn test_b/test_b@ora10g

Connected.

SQL> select * from hr.dept;

select * from hr.dept

*

ERROR at line 1:

ORA-00942: table or view does not exist

SQL> EXEC DVSYS.DBMS_MACSEC_ROLES.SET_ROLE('DEPT_MGMT');

PL/SQL procedure successfully completed.

SQL> select * from hr.dept;

DEPTNO     NAME

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

1000       总经理

1001       市场部

1002       财务部

1003       人力资源部

SQL>

SQL> conn test_c/test_c@ora10g

Connected.

SQL> select * from hr.dept;

select * from hr.dept

*

ERROR at line 1:

ORA-00942: table or view does not exist

SQL> EXEC DVSYS.DBMS_MACSEC_ROLES.SET_ROLE('DEPT_MGMT');

BEGIN DVSYS.DBMS_MACSEC_ROLES.SET_ROLE('DEPT_MGMT'); END;

*

ERROR at line 1:

ORA-47306: -20001: Restricted Command

ORA-06512: at "DVSYS.DBMS_MACUTL", line 38

ORA-06512: at "DVSYS.DBMS_MACUTL", line 389

ORA-06512: at "DVSYS.DBMS_MACSEC", line 232

ORA-06512: at "DVSYS.ROLE_IS_ENABLED", line 4

ORA-06512: at "DVSYS.DBMS_MACSEC_ROLES", line 24

ORA-06512: at line 1

SQL>

OK,预期的效果达到了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值