oracle中先创建用户和角色,步骤如下:
sql>create user user_name identified by name default tablespace users quota 10M;sql>grant dba to user_name;       //为用户授权dba;sql>conn user_name/password;        //进入到user_name用户下sql>create role role_name;        //创建角色sql>grant create session,create table, create view to role_name;   //为角色授权1.刚刚在用户user_name下创建了角色,那么这个角色是属于谁的呢?角色role_name归user_name所拥有?只有user_name才可以将role_name授权给其他用户么?2.在user_name下怎样查看role_name所拥有的权限呢?如何更改role_name的权限?还有怎样查看user_name创建了哪些角色(不是user_name被授予了哪些角色)?3.在sys下又创建了户user_name2和user_name3,那么user_name2是否可以查看数据库中是否存在role_name这个角色?4.可不可以用user_name2将role_name角色授权给user_name3呢?user_name可将role_name授权给user_name2和user_name3吧?5.role_name是属于user_name的,还是role_name是和user_name,user_name2,user_name3是同一个级别的?
如果role_name是属于user_name的,那么role_name存放在user_name用户的哪里呢?6.当然也想知道user_name被授予了哪些角色,用什么命令查看呢?7.如果role_name是和user_name同级的那么他又存放在哪里呢?这样查看?
问的有点多,刚刚接触oracle,希望知道的朋友指点下,谢谢!

解决方案 »

  1.   

    都是按照权限的,所有的这些操作是dba都可以做,没有属于谁的问题。
    其实很简单,不用问,操作一下试试看就ok了。
      

  2.   

    在user_name用户下创建了role_name,那么用什么命令在user_name用户下查看更改创建的role_name拥有哪些权限呢?
    select * from dba_roles where rols='ROLE_NAME';查看不了的;必须权限到sys下面才能查看,也就是说不管哪个用户创建角色,被创建的角色都是整个数据库的?假如我是这个数据库的一个小小的用户,只能查看,没有权限登录sys,我想查看数据库用哪些角色用什么命令呢?还有 想查看自己被授权了什么角色 要使用什么命令呢?
      

  3.   

    你看一下这张表的表名dba_roles ,就知道应该用什么权限来查看这张表了。
      

  4.   

    用户,角色,权限,表空间 这些对象直属数据库表,视图,序列,存储过程这些对象才有“是谁的”,“是哪个用户的”的说法。一个角色不管由谁创建,只要别的用户有对它grantable的权限,就可以把它赋给另外一个用户。dba一般肯定会有grant any role的权限。