zoukankan      html  css  js  c++  java
  • 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.如果一个用户的对象权限具有传递性,并且授予了其他的用户,那么该用户的对象权限回收后,其他用户的权限也被回收。                     

  • 相关阅读:
    BZOJ 3132: 上帝造题的七分钟 树状数组+差分
    PAT Advanced 1006 Sign In and Sign Out (25 分)
    PAT Advanced 1011 World Cup Betting (20 分)
    PAT Basic 1032 挖掘机技术哪家强 (20 分)
    PAT Basic 1028 人口普查 (20 分)
    PAT Basic 1004 成绩排名 (20 分)
    大数据数据库HBase(二)——搭建与JavaAPI
    PAT Advanced 1009 Product of Polynomials (25 分)(vector删除元素用的是erase)
    PAT Advanced 1002 A+B for Polynomials (25 分)(隐藏条件,多项式的系数不能为0)
    PAT Basic 1041 考试座位号 (15 分)
  • 原文地址:https://www.cnblogs.com/evencao/p/3214320.html
Copyright © 2011-2022 走看看