Oracle 通过数据字典查询系统信息

简介:数据字典记录了数据库系统的信息,他是只读表和视图的集合,数据字典的所有者是sys用户。注:用户只能在数据字典上执行查询操作,而维护和修改是由系统自己完成的。

 

1、数据字典的组成:数据字典包括数据字典基表和数据字典视图

数据字典基表:基表存储数据库的基本信息,普通用户不能直接访问数据字典的基表

数据字典视图:数据字典视图是基于数据字典基表所建立的视图,普通用户可以通过访问该视图,来获取系统的信息

数据字典视图主要包括下面三种类型:

user_XXX,all_XXX,dba_XXX三种类型

 

2、数据字典对象介绍

2.1、user_tables

用户显示当前用户所拥有的所有表,他返回当前用户对应的方案的所有的表,代码如下:

select * from user_tables

此表不全 

一共有4张左右

 

2.2、all_tables

用户显示当前用户可以访问的表(可能会存在别的用户的表具体参考Oracle 系统常用命令 6.2~6.3),代码如下:

select * from all_tables;

一共有100张左右

 

2.3、dba_tables

它会显示所有方案拥有的数据库表,但是查询这种数据库字典视图,要求用户必须拥有dba或者是select any table的系统权限

system用户登录

select * from dba_tables;

一共有2800张左右的表

 

2.4、dba_users

它会显示当前数据库的所有用户的详细信息,查询该表必须具有dba或者select any table的权限

system用户登录

select * from dba_users;

大约有30种用户,一般情况下

 

2.5、dba_sys_privs 

它可以显示用户具有的系统权限,查询该表必须具有dba或者select any table的权限

 system用户登录

select * from dba_sys_privs ;

system大约有800种系统权限

 

2.6、dba_tab_privs

它可以显示用户的对象权限,查询该表必须具有dba或者select any table的权限

 system用户登录

 select * from dba_tab_privs;

system所拥有的对象权限大概有4万种

 

2.7、dba_role_privs

它可以显示用户所具有的角色,查询该表必须具有dba或者select any table的权限

system用户登录

select * from dba_role_privs

system角色大概有131种角色

 

例:查询scott用户所具有的权限,这个的查询思路和普通的权限系统一致

1、首先查询scott的角色信息

select * from dba_role_privs where grantee='SCOTT'

2、查询角色下有什么系统权限和对象权限

select * from dba_sys_privs where grantee='RESOURCE'
UNION ALL
select * from dba_sys_privs where grantee='CONNECT';

scott所拥有的所有的对象权限和系统权限

2.8、

 

 2.9、查询当前数据库的全称

select * from global_name

当前数据库名为ORCL

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值