Oracle数据库学习之第一篇(3)
对象权限的传递:
与系统权限的传递类似,不过后面的选项有所改变:
加入sys创建了一个A表。授予lisi的select权限:
grant select On A to lisi;
如果想让lisi拥有对A表的select权限的分配能力,只需修改为:
grant select On A to lisiwithgrantoption;
思考:如果sys管理员撤销了lisi的权限,那么wangw的权限是否也被撤销了呢?
通过角色对权限进行管理
如果按照上面的权限管理方法 ,对每个用户逐一的分配权限,必然会很混乱,导致管理的困难。所以oracle提供了角色来对权限进行集合化的管理。
角色就是权限的集合。
在sys下创建角色:
create role myrole;
给角色添加权限:
grant create session to myrole;
grant create table to myrole;
创建用户:
create user zhangsan;
grant myrole to zhangsan;//赋予以上的两个权限给zhangsan
有些系统权限无法直接赋予角色,因为该权限太大了,比如unlimited tablespace。
例如:执行grant unlimited tablespace to myrole;
出现错误提示:无法将unlimited tablespace授予角色
删除角色:
drop role myrole;
权限举例:
create table create any table
[alter table] alter any table
[delete table] delete any table
补充:oracle数据库不含紫色的权限类型。因为有了create table权限,说明表的一切都归创建者。不需要还指定alter table和drop table权限了,默认就有了。
而create any table这个权限表明该用户可以给其他用户创建表。
示例:wangwu给lisi创建一个表temp
create tablelisi.temp(id int);//
相关新闻>>
- 发表评论
-
- 最新评论 更多>>