加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

oracle中dba_tables,all_tables和user_tables的区别。

(2012-04-20 15:16:29)
标签:

it

oracle

dba_tables

数据库

分类: Oracle数据库

Oracle学习之创建表——-

    当成功创建一个表scott.temp_employees后,想通过执行如图所示sql语句查看scott.temp_employees表是否创建成功,却出现表或视图不存在;

http://s5/bmiddle/68fe7e15hbe17294257c4&690

原因:scott用户没有 DBA_tables数据字典表的访问权限。
普通用户可以访问 user_tables表或者 all_tables表;

解决方法:

方法1、将登陆用户换成System查询;

方法2、用SYSDBA登陆后授权给SCOTT后再用SCOTT查询;如图:

http://s1/bmiddle/68fe7e15h7968c294d970&690

注:

SQL> grant dba to scott with admin option;

授权成功。

scott用户就可以把dba的权限授予给其他的用户了。


方法3、user_tables表或者 all_tables表替换掉dba_tables查询;如图:

http://s4/bmiddle/68fe7e15hbe173b29bfa3&690

附加知识:

Oracle角色、权限的一些常用视图

ORACLE中数据字典视图分为3大类, 用前缀区别,分别为:USER,ALL 和 DBA,许多数据字典视图包含相似的信息。

USER_*:有关用户所拥有的对象信息,即用户自己创建的对象信息

ALL_*:有关用户可以访问的对象的信息,即用户自己创建的对象的信息加上其他用户创建的对象但该用户有权访问的信息

DBA_*:有关整个数据库中对象的信息

          DBA_*>= ALL_*>= USER_*

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有