• Oracle数据安全(三)权限管理


     

    一.权限概述

        所谓权限就是执行特定类型SQL命令或访问其他模式对象的权利。用户在数据库中可以执行什么样的操作,以及可以对哪些对象进行操作,完全取决于该用户所拥有的权限。

        在Oracle中将权限分为系统权限和对象权限。

              系统权限:是指在数据库级别执行某种操作的权限,或是针对某一类对象执行某种操作的权限。

              对象权限:是指对某个特定的数据库对象执行某种操作的权限。比如表的插入、删除等

         在Oracle中有两种授权的方式

               1.利用Grant命令直接给用户授权

               2.先将权限授予角色,然后将角色授予用户。

       总之Oracle数据库权限管理的过程就是权限授予与回收的过程。

    二.系统权限分类

         在Oracle中有200多种系统权限。可以查询数据库字典视图SYSTEM_PRIVILEGE_MAP获取所有的系统权限信息。 

         系统权限主要分两大类

             1.一类是对数据库某一对象的操纵能力,与具体的数据库对象无关,通常导游any关键字。

             2.另一类系统权限时数据库级别的某种操作能力。如果create session,alter system等。

    三.系统权限的授权

          可以为用户、角色、PUBLIC组分配系统权限,如果给PUBLIC组分配的权限,那么数据库中的所有用户都有该权限。

         语法为 

                   GRANT system——privilege_list |[ALL PRIVILEGES ]

                   TO user_list|role_list|PUBLIC [WITH ADMIN OPTION];

          例如为PUBLIC分配create session权限

                     grant  create session  to  public ;

               为user1授予create table 、create sequence系统权限

               grant create table ,create sequence to user1;

              让user1的权限具有传递性

              grant create table ,create sequence to user1 with admin option;

    四.系统权限回收        

                    REVOKE system——privilege_list |[ALL PRIVILEGES ]

                   FROM user_list|role_list|PUBLIC [WITH ADMIN OPTION];

             回收user1的create table 权限

                     revoke create table from user1;

             有三点需要注意的

                      1.多个系统管理员授予用户同一个权限后,其中一个管理员回收这个权限,该用户将不再有该系统权限

                      2.为了回收用户系统权限的传递性,必须先回收用户的系统权限,然后在重新授予其相应的系统权限

                      3.如果一个用户的系统权限具有传递性,并且授予了其他的用户,那么该用户的系统权限回收后,其他用户的系统的并不受影响。

    五.对象权限的分类

           对象权限时值对某个特定模式对象的操作权限。

    六.对象权限的授权

            语法

                    GRANT Object_privilege_list |[ALL PRIVILEGES ][(column,....)] on [schema.]object

                   TO user_list|role_list|PUBLIC [WITH grant OPTION];

            将scott模式下的emp表的select.insert.update对象权限授予用户user1

                   grant select ,insert,update on scott.emp to user1;

              让user1能授权给user2

                   grant select ,insert,update on scott.emp to user1 with grant option;

    七.对象权限的回收

              回收user1在emp表上的select 权限

                  revoke select  on scott.emp from user1;

             需要的注意的有三点

                   1.多个管理员授予用户同一个权限后,其中一个管理员回收这个权限,该用户将不再有该对象权限

                   2.为了回收用户系统权限的传递性,必须先回收用户的系统权限,然后在重新授予其相应的系统权限

                   3.如果一个用户的对象权限具有传递性,并且授予了其他的用户,那么该用户的对象权限回收后,其他用户的权限也被回收。                     

  • 相关阅读:
    期中考试补完计划
    c++简单程序设计-4
    c++简单程序设计-3
    c++简单程序设计-2
    c++简单程序设计-1
    layer ifram 弹出框
    定时发邮件
    二维码生成
    文件或文件夹的压缩
    excel 导入 与 导出
  • 原文地址:https://www.cnblogs.com/evencao/p/3214320.html
Copyright © 2020-2023  润新知