Oracle数据库学习之第一篇(2)

来源:未知 责任编辑:责任编辑 发表时间:2014-04-20 03:42 点击:

  在lisi的窗口下,输入:select * from mytab;报错:表或视图不存在。我们知道表属于表的创建者。

  这里我们直接查询表mytab,数据库会到当前用户下寻找该表,显然当前用户lisi没有表mytab。所以提示表或视图不存在。

  那我们指定表的所有者,再次查询:select * from wangwu.mytab;窗口显示“权限不足”的错误提示。由此可知,虽然找到了mytab表,却没有访问的权限。

  只有表的拥有者才可以授予该表的相关权限给其他用户。使用用户wangwu的操作窗口,使用如下语句,把查询语句授予lisi;

  grant select on mytab to lisi;

  执行此语句后,lisi就可以查询用户wangwu的mytab表了。

  如果要获得其他对于mytab表的权限,仍然需要指定(多个权限同时指定,用逗号分隔):

  grant update,select,delete on mytab to lisi;

  如果要把表的所有权限都赋予给用户lisi,可以这样写;

  grantallon mytab to lisi;

  在wangwu的窗口下,向mytab插入几条数据。然后查询,却显示“未选定行”。说明刚才的插入没有同步到数据库中去。

  在oracle下,默认需要对sql语句手动进行提交。所以在几条插入语句后,可以执行commit;语句提交。再次查询,表中就有数据了。

  如果要把某个权限授予所有的用户,可以使用public关键字:

  grant create session topublic;

  查看当前用户的对象权限,使用如下语句:

  select * from user_tab_privs;

  oracle的权限控制粒度很细,甚至可以精确到某一列的权限。

  grant update(name) on mytab to lisi;

  这句执行的效果就是,lisi用户对表mytab仅拥有更新name这一列的权限。

  grant insert(id) on mytab to lisi;

  查看当前用户对数据库表的列的权限:

  select * from user_col_privs;

  在lisi权限下,执行:update wangwu.mytab set name=fdsfa,id="dfs" where id=1;

  执行后显示权限不足。

  update wangwu.mytab set name="fsa" where id=1;

  这样就可以了。

  同样执行:insert into wangwu.mytab values(4,"asf");执行后也显示权限不足。

  修改语句为:inset into wangwu.mytab(id) values(4);成功执行。

  只能对更新和插入设定精确到某列的权限控制,不能对查询和删除设定。

  命令:show user可以查看当前用户

  数据库有三种类型的语句:

  ddl:数据定义语言,指定是数据库表的创建,删除之类的操作。

  dml:数据操纵语言,针对表的增删改查操作,只有dml需要进行提交操作。

  dcl:数据控制语言,对系统权限和对象权限的管理。

  权限的传递:

  系统权限的传递:

  sys用户把一些系统权限授权给lisi用户.

  grant alter any table to lisi;

  查看lisi的系统权限,就有了alter any table的权限。

  现在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对该权限具有分配功能了。

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Table函数使用简介
  • Oracle数据库Constraint约束的常用操作及异常处理
  • Bulk Collect性能分析(zz)
  • export/import的使用
  • OCP043第十五讲 Database Security
  • ORACLE10gr2数据导入MySQL方案
  • oracle 让sys用户可以使用isqlplus
  • 在oracle数据库下使用iSQL*Plus DBA访问数据库
  • Oracle行列转换小结
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1