设为首页 加入收藏

TOP

Oracle数据库学习之第一篇(二)
2014-11-24 02:21:42 来源: 作者: 【 】 浏览:5
Tags:Oracle 数据库 习之 第一篇
ble的权限。

  现在lisi想把该权限传递授权给wangwu用户执行以下语句:grant alter any table to wangwu;执行后报“权限不足”。

  要想lisi也可以传递权限,可以在sys用户授权时加上with admin option的选项,该选项就说明了还拥有权限的管理能力。

  即:grant alter any table to lisiwith admin option;这样lisi就可以把alter any table的权限传递给wangwu了。

  要想wangwu也可以传递该权限,也使用该admin选项即可。

  查看lisi的系统权限,他的alter any table权限的同一行的adm字段取值由NO变为YES,说明lisi对该权限具有分配功能了。

  对象权限的传递:

  与系统权限的传递类似,不过后面的选项有所改变:

  加入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);//

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇oracle分页小谈 下一篇使用Oracle Text构建全文搜索应用..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: