• Oracle数据安全(四)j角色管理


      一.角色管理的概述

                  1.角色的概念

                        为了简化数据库权限的管理,在Oracle数据库中引入了角色的概念。所谓的角色就是一系列相关权限的集合。

                  2.角色的特点

                        在数据库中,角色的名称必须是唯一的,不能与用户同名。

                        由于角色不是模式对象,当创建角色的用户被删除时对角色没有任何影响。

                        角色可以包含任何的系统权限和对象权限

           角色可以授予任何数据库用户和其他角色

                       授予用户的角色可以随时禁用或激活

                       可以使用default role语句设置用户的默认角色

                       如果创建角色时指定需要验证,则激活该角色时需要提供验证信息

                       可以随时增加或删除角色所具有的权限

                   3.优点

                        减少权限管理的工作量。

                        实现权限的动态管理

                        有效的使用权限

                        提供应用安全性

                   4.角色的分类    主要分为预定义角色与自定义角色

              二.预定义角色

                   在Oracle11g数据库中有50多个预定义角色。最常用的有

                          dba

                           resource

                           connect等

                  查询当前数据库的的所有预定义角色

                 

    SQL> select * from dba_roles;
     
    ROLE                           PASSWORD_REQUIRED AUTHENTICATION_TYPE
    ------------------------------ ----------------- -------------------
    CONNECT                        NO                NONE
    RESOURCE                       NO                NONE
    DBA                            NO                NONE
    SELECT_CATALOG_ROLE            NO                NONE
    EXECUTE_CATALOG_ROLE           NO                NONE
    DELETE_CATALOG_ROLE            NO                NONE
    EXP_FULL_DATABASE              NO                NONE
    IMP_FULL_DATABASE              NO                NONE
    LOGSTDBY_ADMINISTRATOR         NO                NONE
    DBFS_ROLE                      NO                NONE
    AQ_ADMINISTRATOR_ROLE          NO                NONE
    AQ_USER_ROLE                   NO                NONE
    。。。。。。。

      这是所有的预定义的所有的角色

            三.创建角色

                语法

                 CREATE ROLE role[NOT IDENTIFIED]|[IDENTIFIED [BY password]]|EXTERNALLY|GLOBALLY

                NOT IDENTIFIED:角色曹勇数据库认证,激活时不需要口令

          创建4个角色,一个采用不需要口令数据库认证,一个采用需要口令数据库认证,一个采用操作系统认证,一个采用全局认证

    SQL> create role role_emp;
     
    Role created
     
    SQL> create role role_emp identified by role_manager;
      
    SQL> create role role_manager identified by role_manager;
     
    Role created
      
    SQL> create role role_external identified externally;
     
    Role created
     
    SQL> create role role_global identified  globally;
     
    Role created
    

      四.角色权限的授予与回收

           需要注意的

              1.使用grant语句为角色授权的时候,自己需要grant admin option,或者是grant grant option 

             2.在Oracle11 g中不允许角色授权带有grant admin option,或者是grant grant option 

          五.修改角色

             ALTER ROLE role[NOT IDENTIFIED]|[IDENTIFIED [BY password]]|EXTERNALLY|GLOBALLY

          六.禁用与激活角色

             1.禁用所有角色

                  set role none;

              2.激活指定角色

                  set role  connect ,resource,role_emp identified by role_emp;

             3.激活除了个别角色外其他所有角色

                 set role all except role_manager,role_emp;

             4.激活所有角色

                set role all;

            5.删除角色

                drop role role_emp;

           七.利用角色进行权限管理

                设置用户的默认角色

                  alter user user default  role role_list|[all [except role_list]]|none;

                1.禁用用户user1的所有角色,当用户user1登录数据库时所有角色处于禁用状态

                    alter user user1 default role none;

               2.将用户user1的角色connect,resource设置为默认角色

                   alter user  user1 default  role connect,resource;

               3.将用户的所有角色设置为默认角色

                  alter user user1 default role all;

               4.将用户除默认角色外的,其他角色都设置为默认角色

                    alte user user1 default role all execpt resource;

  • 相关阅读:
    Jam的计数法
    你已经爱我多久了
    脏话过滤
    三角恋
    栈练习3
    栈练习2
    栈练习
    高精度之乘法
    高精度之减法
    高精度之加法
  • 原文地址:https://www.cnblogs.com/evencao/p/3214458.html
Copyright © 2020-2023  润新知