当前位置:  数据库>oracle

Oracle Default Role 简述

    来源: 互联网  发布时间:2017-06-12

    本文导语: Oracle系统权限基础是建立在三个维度层面上,即系统权限(System Privilege)、对象权限(Object Privilege)和角色权限(Role Privilege)。系统权限定义了用户可以执行的某些行为操作;对象权限定义了用户在某个系统对象(如数据表...

Oracle系统权限基础是建立在三个维度层面上,即系统权限(System Privilege)、对象权限(Object Privilege)和角色权限(Role Privilege)。系统权限定义了用户可以执行的某些行为操作;对象权限定义了用户在某个系统对象(如数据表、视图等)的操作权限;角色权限更像是一个容器对象,可以将一组系统权限、对象权限甚至其他角色权限容纳到其中。

三个维度权限在三个层面上构建了Oracle权限体系框架。传统应用系统的一种配置方式是在数据库层面建立用户,配置相关权限进行操作。这样的系统还可以在一些旧应用系统或者国外业务系统中看到。随着Web应用的广泛使用,Oracle权限体系需求的复杂性其实是在不断降低的。Web应用通常只需要连接一个Schema用户名即可,用户体系是在应用层面加以实现。

最近笔者遇到一个关于角色Role的问题,最后发现是一个Default Role这个经常被忽视的设置出现问题。本文主要系统介绍一下这个特点功能。

1、环境介绍

Oracle的权限体系在过去的版本中都在不断地发展丰富,笔者讨论基于Oracle 11g,具体版本号为11.2.0.4。

SQL> select * from v$version;

BANNER

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

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

PL/SQL Release 11.2.0.4.0 - Production

CORE      11.2.0.4.0    Production

TNS for Linux: Version 11.2.0.4.0 - Production

NLSRTL Version 11.2.0.4.0 – Production

建立一个全新的用户。

SQL> create user test identified by test;

User created

2、Default Role概论

和系统权限、对象权限相比,角色权限是比较特殊的一种权限类型。它更像是一种组合容器,可以将其他权限以组Group的方式进行组织。一般来说,角色权限Role Privilege最常用的场景是简化管理难度,实现标准化配置管理。另一个角色权限的特点是动态赋予。系统权限和对象权限一旦赋予,用户只要登录就直接获得。而对象权限在这个问题上是可以选择的。

首先我们进行默认设置,对用户test进行一系列角色赋予动作。

SQL> grant connect, resource to test;

Grant succeeded

 

SQL> grant sicspccgrole to test;

Grant succeeded

 

SQL> grant sicspctbcgrole to test;

Grant succeeded

 

SQL> grant sicspctrrole to test;

Grant succeeded

通过视图db_role_privs,可以查看到角色与授予关系。

SQL> select * from dba_role_privs where GRANTEE='TEST';

 

GRANTEE                        GRANTED_ROLE                  ADMIN_OPTION DEFAULT_ROLE

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

TEST                          RESOURCE                      NO          YES

TEST                          SICSPCCGROLE                  NO          YES

TEST                          SICSPCTBTRROLE                NO          YES

TEST                          CONNECT                        NO          YES

TEST                          SICSPCTBCGROLE                NO          YES

TEST                          SICSPCTRROLE                  NO          YES

6 rows selected

重点关注default_role列,对应test的几个权限,都被授予为default_role。换而言之,一个用户被赋予角色之后,直接就是默认角色即default role。

3、相关权限变化

如果角色对象底层权限发生变化,已经授权对象有什么影响呢?

SQL> create role testrole ;

Role created

 

SQL> grant select on sics.cnu_environment to testrole;

Grant succeeded

 

SQL> grant testrole to test;

Grant succeeded

此时新角色testrole被授予为default role。

SQL> select * from dba_role_privs where GRANTEE='TEST';

 

GRANTEE                        GRANTED_ROLE                  ADMIN_OPTION DEFAULT_ROLE

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

TEST                          RESOURCE                      NO          YES

TEST                          SICSPCCGROLE                  NO          YES

TEST                          SICSPCTBTRROLE                NO          YES

TEST                          TESTROLE                      NO          YES

TEST                          CONNECT                        NO          YES

TEST                          SICSPCTBCGROLE                NO          YES

TEST                          SICSPCTRROLE                  NO          YES

 

7 rows selected

Testrole底层发生变化。

SQL> grant select on scott.emp to testrole;

Grant succeeded

角色授权关系没有变化。

SQL> select * from dba_role_privs where GRANTEE='TEST';

 

GRANTEE                        GRANTED_ROLE                  ADMIN_OPTION DEFAULT_ROLE

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

TEST                          RESOURCE                      NO          YES

TEST                          SICSPCCGROLE                  NO          YES

TEST                          SICSPCTBTRROLE                NO          YES

TEST                          TESTROLE                      NO          YES

TEST                          CONNECT                        NO          YES

TEST                          SICSPCTBCGROLE                NO          YES

TEST                          SICSPCTRROLE                  NO          YES

7 rows selected

一些相关实验也证明,对于角色层面权限组的变化,不会影响到用户与角色的关系。 

更多详情见请继续阅读下一页的精彩内容:


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 实现Oracle数据库的存储过程中拥有“role”权限
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE日期相关操作
  • Linux系统下Oracle的启动与Oracle监听的启动
  • ORACLE数据库常用字段数据类型介绍
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • Oracle 12c的九大最新技术特性介绍
  • 网间Oracle的连接,远程连接Oracle服务器??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,