您的位置:首页 > 数据库 > Oracle

oracle学习总结---------角色和权限管理

2017-01-18 20:45 246 查看
    |---系统权限:指对数据库管理的操作以及数据对象的操作(创建,删除,修改)oracle提供了166种系统权限

     

    显示系统权限的sql语句:

         select * from system_privilege_map order by name;   

分配权限/角色:(必须是管理员)

     ---grant  权限名 to 用户名;

     ---权限: connect,resource,dba,select on 表名, insert on 表名

撤销权限/角色:

     -----revoke 权限名字 from 用户名

  ?实例:

    (1)创建一个用户kan

       create user kan identified by m123;

     (2)给kan赋予Create Session 权限

        grant Create session to kan with admin option;

        ---【with admin option】可以将权限负责给其他用户

    (3)回收权限,权限回收不是级联回收

        revoke Create session from kan; 

     |---对象权限:对数据对象的操作,授予对象权限是有对象的所有者来完成的,如果用其他的用户来操作,则需要用户具有相应的(with grant option)权限,sys和system可以将任何对象的对象权限授予其他用户,授予是用grant命令来完成的。

     显示对象权限的sql语句

         select distinct privilege from dba_tab_privs

     |---授予权限的基本语法:

       grant 对象权限 on 数据对象 to 用户名【角色】 [with grant option]

       注解:[with grant option]//可以将对象权限授权于其他用户

     |---回收对象权限基本语法:

       revoke 对象权限 on 数据对象 from 用户名【角色】 

       注解:回收对象权限是级联操作

      ?实例:

         (1)kan用户操作scott.emp表,则必须为kan对象赋予对象权限

             grant select on emp to kan with grant option;

             select * from scott.emp ;

          (2)kan可以修改scott.emp表

             grant update on emp to kan with grant option;

           (3)kan用户可以操作scott.emp;

             grant update on emp to kan with grant option;

            (4)回收kan用户的所有对象权限

              revoke all on emp from kan;

             

 2、角色: 角色分为预定义角色和自定义角色,角色的本质是多个权限的集合,简化对权限的管理。角色可以包括系统权限,也可以包含对象权限。

     

     ?:显示角色拥有的权限:

        select * from dba_sys_privs where grantee = 'CONNECT';

        注意:在查询的时候,角色名一定要大写

   

    |---预定义角色

        预定义角色是指oracle所提供的角色,每种角色都用于执行一些特定的管理任务。预定义角色在oracle中一个用33种

 

        ?注解:查看用户具有什么角色:

          select * from dba_role_privs where grantee ='AAA'; //用户名要大写  

    (1)connect角色:用户系统权限:Create Session主要用于为授权用户登录数据库。

    (2)dba角色,dba角色具有所有系统的权,及with admin option选项,默认的dba用户为sys和ssytem,他们可以将任何的系统权限授予其他用户,但是要注意dba角色不具有启动和关闭数据库

     |---自定义角色

      (1)创建角色(不验证)

         如果创建的角色是公用的角色,可以采用不验证的方式建立角色

         --语法:

            create role 角色名 not identified;

       (2)创建角色(数据库验证)

         采用这样的方式时,角色名、口令存放在数据库中,当激活该角色时,必须提供口令,在创建这种角色时,需要提供口令

            create role 角色名 identified by 用户名;

      |---删除角色:

         drop role 角色名。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle