Oracle 学习笔记7 —— 权限管理2

1、对象权限的分类

根据不同的对象类型,Oracle数据库设置了多种类型的对象权限。


 alterdeleteexecuteindexinsertreadreferenceselectupdate
directoryNNNNNYNNN
functionNNYNNNNNN
procedureNNYNNNNNN
packageNNYNNNNNN
sequenceYNNNNNNYN
tableYYNYYNYYY
viewNYNNYNNYY

2、授予对象权限
oracle dba和对象权限有该对象的拥有者可以为其他用户授权,非对象的拥有者不能向其他用户授予对象权限。

grant { object_priv [(column_list)][,object_priv[(column_list)]]... | all [privilege]} on [ schema.]object 
to { user | role | public} [, { user | role | public }] ...
[with grant option]

其中,object_priv 是对象权限,column_list用于标识权限所对应的列表,schema表示模式名,user表示被授权的用户,role表示被授权的角色。对象权限不仅可以授予用户、角色,也可以授予public。将对应权限授予public后,会使所有用户都具有该对象权限。授予对象权限时可以带with grant option选,被授权用户可以将对应权限转授给其他用户。
	需要注意的是,with grant option选项不能授予给角色。
	grant select on scott.emp to USER_NAME;
	-- 授予scott模式,emp表的查询权限
	
	grant update(sal) on scott.emp to USER_NAME;
	-- 授予scott模式,emp表sal字段的修改权限。

3、显示对象权限
授予对象权限时,Oracle会将对象权限的信息存放到数据字典中。下边列出与对象权限相关的数据字典视图。


DBA_TAB_PRIVS       显示所有用户或角色的对象权限信息
DBA_COL_PRIVS       显示所有用户或角色的列权限信息
ALL_COL_PRIVS_MADE  显示对象所有者或授权用户授出的所有列权限
ALL_COL_PRIVS_RECD  显示用户或public组被授予的列权限
ALL_TAB_PRIVS_MADE  显示对象所有者或授权用户授出的所有对象权限
ALL_TAB_PRIVS_RECD  显示用户或public组被授予的对象权限


下边的语句将查询DBA_TAB_PRIVS显示用户被授予的所有对象权限。

select grantor, owner || '.' || table_name object, privilege
from DBA_TAB_PRIVS
where grantee = 'USER_NAME';

4、收回对象权限
和系统权限相似,收回对象权限是由对象的所有者完成的。如果以其他用户收回对象权限,则要求该用户必须是权限授予者。收回对象权限的revoke语句的形式如下:

revoke { object_priv [, object_priv] ... | all [privileges]}
on [ schema.]object
from { user | role | public}
[ cascade constrainsts];

收回对象权限时需要注意,授权者只能从自己授权的用户那里收回对象权限。如果被授权用户基于一个对象权限创建了存储过程,视图,当收回对象权限以后,这些存储过程,视图将变为无效。
revoke select on scott.emp from USER_NAME;
-- 收回对象scott模式,emp表查询权限

同样,收回对象权限,不会级联收回。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值