浅谈Oracle权限

    权限,是否能够操作某些对象。在oracle中权限分为系统权限和对象权限。简单说系统权限就是与系统级别、数据库级别的权限,比如连接数据库、创建数据库对象之类的。对象权限,操作数据库对象的权限,在oracle中数据库对象很多,比如表、视图、同义词、索引,函数、过程等等。下面就简单谈谈在使用这些权限的区别。

     一、级别不同
    刚才谈了,两者针对目标不同、级别不同,多说无益。

     二、授予时候两者的语法不同
    如果我们不考虑传递授权,那么两者都是这样的语法。grant  xxxx to user.这里xxx代表某种权限。比如说:
                   1.grant create session to user01(授予系统权限,当然用户必须是sys)
                   2.grant select on scott.emp to user01(授予对象权限,当前用户必须能够拥有将scott.emp表授予其他表的权限)
    如果我们要考虑传递授权怎么办呢?(就是A--&gtB,然后B--&gtC)这是就根据权限而定了。比如说:
                  1.grant create session to user01 with admin option;
                  2.grant select on scott.emp to user01 with grant option;
    两者的区别就在红色部分,这没有什么技巧,记住就OK了。

     三、回收权限时的区别
    两者回收权限时的语法都一样。revoke xxxx from user.(xxxx表示要回收的权限),但是两者回收权限时的原则不一样。在回收系统权限时,不是级联回收,而在对象权限时是级联回收。级联回收的含义就是说如果A授予权限给B,B又将这个权限授予C,那么A回收B的那个权限后,C自然那个权限也就不存在了。我想这两者做实验都很容易,在此不贴实验过程。

     四、查看系统有哪些系统权限
    利用system_privilege_map,这里面显示了所有的系统权限。有些人可能会想到数据字典视图dba_sys_privs,我查看了一下,dba_sys_privs表示:整个数据库中所有被授予了系统权限的  被授予者、被授予的系统权限、是否能传递授予下去。

SQL> desc dba_sys_privs;
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 GRANTEE                                   NOT NULL VARCHAR2(30)
 PRIVILEGE                                 NOT NULL VARCHAR2(40)
 ADMIN_OPTION                                       VARCHAR2(3)
,而system_privilege_map则表示那些系统中最原始的系统权限,有点类似于源头一样。
    顺便提一句,大多数数据库中都有角色这个概念,它是权限的集合,它是为了更好的管理权限,更方便授予与回收而存在的。

    总结:oracle最大的特点就是复杂,当然在复杂的同时效率性能也相当不错。为了征服oracle而努力。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25701553/viewspace-700440/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25701553/viewspace-700440/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值