zoukankan      html  css  js  c++  java
  • ORACLE的CONNECT和RESOURCE角色权限

    最近在处理数据库的用户权限问题,之前惯性思维,觉得给用户授权RESOURCE权限之后,用户的一般权限都会有,等到发现用户有RESOURCE角色,却没有创建视图的权限之后,才发现这部分还是一知半解啊,所以此处整理了一下相关的CONNECT角色和RESOURCE角色的内容。

    一般情况下,在新建数据库用户后,都会习惯性的给用户授权CONNECT角色和RESOURCE角色:

    GRANT connect,resource TO 用户;

    但是拥有这两个角色的用户都拥有什么权限呢?可以使用如下语句查看一下:

    SELECT * FROM dba_sys_privs WHERE grantee IN ('RESOURCE', 'CONNECT') ORDER BY 1;

    从查询结果可以看到:

    image

    CONNECT角色:仅具有创建SESSION的权限

    RESOURCE角色:仅具有创建CLUSTER,INDEXTYPE,OPERATOR,PROCEDEURE,SEQUENCE,TABLE,TRIGGER,TYPE的权限。同时,当把ORACLE resource角色授予一个user的时候,不但会授予ORACLE resource角色本身的权限,而且还有unlimited tablespace权限,但是,当把resource授予一个role时,就不会授予unlimited tablespace权限。

    确实没有创建视图的权限,由此看来如果需要创建视图权限,只能单独授权:

    GRANT CREATE VIEW TO 用户;

    那么,一个用户,如果查看他拥有什么权限呢?

    方法一:PLSQL Developer工具

    在PLSQL Developer中可以很方便的查看用户的各种类型权限(包括对象权限,角色权限,系统权限),如下图:

    image

    方法二:SQL查询语句

    查询对象权限:

    SELECT * FROM dba_tab_privs a WHERE a.grantee = '用户名';

    查询角色权限:

    SELECT * FROM dba_role_privs a WHERE a.GRANTEE = '用户名';

    查询系统权限:

    SELECT * FROM dba_sys_privs a WHERE a.GRANTEE = '用户名';
  • 相关阅读:
    成长——新的开始,一切都是美好的
    asp.net mvc项目自定义区域
    随便记录下系列
    插件化编程实现的一份糖炒栗子~~
    个人项目框架搭建 -- 缓存接口与实现
    个人项目框架搭建 -- 仓储模式使用
    个人项目框架搭建 -- Autofac简单使用记录
    至自己
    使用T4模板合并js文件
    HTML5学习笔记
  • 原文地址:https://www.cnblogs.com/jsllgjk/p/3954006.html
Copyright © 2011-2022 走看看