首页 > 数据库开发 > 【Oracle】加密角色的使用

【Oracle】加密角色的使用

之前不是很明白加密角色的作用,今天查了一些资料发现加密角色可以以非default角色授予一个用户,只有在需要的时候再进行启用。一些比较敏感的权限在平时的工作中基本用不到,为了防止误操作完全可以把这些权限单独授予一个角色,只有在有需要的时候进行启用。还有就是对同一用户组的用户可以有一些权限上的分割,不知道加密角色密码的人无法启用这方面的权限。

下面进行实验:

 

首先创建两个角色r_csr_select,并且授予相应的权限:

SYS@ORCL>create role r_cs;    

 

Role created.

 

SYS@ORCL>grant create session to r_cs;

 

Grant succeeded.

 

SYS@ORCL>create role r_select identified by r_select;

 

Role created.

 

SYS@ORCL>grant select on dba_objects to r_select;

 

Grant succeeded.

创建用户test,将r_csr_select都授予它,并将r_cs置为default roledefault role也可以有多个):

SYS@ORCL>create user test identified by test;

 

User created.

 

SYS@ORCL>grant r_cs,r_select to test;

 

Grant succeeded.

 

SYS@ORCL>alter user test default role r_cs;

 

User altered.

这时候我们通过test用户连接后查询dba_objects的数据:

SYS@ORCL>conn test/test 

Connected.

EST@ORCL>select count(*) from dba_objects;

select count(*) from dba_objects

                     *

ERROR at line 1:

ORA-00942: table or view does not exist

会发现无法查询,这时候我们启用r_select角色,然后再进行查询:

TEST@ORCL>set role r_select identified by r_select;

 

Role set.

 

TEST@ORCL>select count(*) from dba_objects;

 

  COUNT(*)

----------

     50327


本文固定链接: http://www.devba.com/index.php/archives/5248.html | 开发吧

报歉!评论已关闭.