Oracle 权限管理

Oracle权限分两种,系统权限和对象权限。
系统权限主要是指创建Table、创建View、创建TableSpace等DDL操纵权限以及对系统修改、用户管理等方
面的操作权限,全部位于system_privilege_map这个系统表中;用户已经拥有的系统权限记录在
dba_sys_privs这个系统表中。Oracle系统中有Create Table,Create View这样的系统权限,即没有Drop
Table,Drop View这样的系统权限,那是因为Oracle认为只要用户有Create权限,就有对应的Drop权限。
对象权限主要是指将用户自己创建的对象授权给其它用户,如insert,update,delete,select,execute等;
因为Table、View、Procedure等对象的权限都不一样,所以Oracle没有把这些权限记录下来;用户已经拥
有的对象权限记录在dba_tab_privs这个系统表中。
系统权限和对象权限的授权语法略有不同
系统权限授权
grant create any table to LXZ
grant create table to lxz
这两个语句仅仅是中间多个any,但是区别是很大的。不加any,授权的用户只能在自己默认的Schema中创
建对象。对象的owner也是用户自已。加any之后,用户就可以在任意的Schema中创建对象。但是对象的
owner不是用户自己,而是对定的Schema对应的用户。比如:
connect lxz/lxz;
create table test1.tab1(id int);
用户lxz在test1的Schema中创建了表tab1,tab1的owner属于test1,并不是属于lxz。所以,tab1虽然是lxz
创建的,但是lxz没有Tab1的select、update、insert、delete权限,test1是tab1的owner,test1拥有tab1
的一切权限。
在创Index的时候需要注意
connect / as sysdba
grant create any index to lxz;
connect lxz/lxz
create index idx_id on test1.tab1(id);
idx_id虽然是建在test1.tab1上面,但是它的owner却是lxz.如果要想它的owner属于test1,需要在创建的
时候指定。
create index test1.idx_id on test1.tab1(id);
Oracle支持一次将多种权限授予一个用户
grant connect,create table,create view to lxz;
回收系统权限
revoke connect from lxz
revoke connect,create table,create view from lxz;
对象权限授权
connect heli/heli
grant select on t1 to lxz;
grant select,update,delete on t1 to lxz;
对象不同,拥有的权限也不同,比如Table有select,insert,update权限,procedure有execute权限。为
了简化对象授权,Oracle提供了all关键字,如比用户heli将表t1的所有权限授予lxz
grant all on t1 to lxz;
回收对象权限
revoke select on t1 from lxz;
revoke select,update on t1 from lxz;
revoke all on t1 from lxz;
权限默认是不能传递的,就是说用户A将Tab1的权限授予了用户B,用户B不能将Tab1的权限授予用户C、用
户D。如果想要传递权限,需要加上关键字with grant opthon;
grant all on t1 to lxz with grant opthon;
系统权限也是类似的情况,关键字是with admin opthon;
grant connect to lxz with admin opthon;
lxz可以将connect角色授予任何人。
 
 
 

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

转载于:http://blog.itpub.net/23353800/viewspace-712916/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值