十3、oracle 数据字典和动态性能视图

1、概念
数据字典是oracle数据库中最重要的组成部分,它提供了数据库的一些系统信息。
动态性能视图记载了例程启动后的相关信息。sql

           

2、数据字典
1)、数据字典记录了数据库的系统信息,它是只读表和视图的集合,数据字典的全部者为sys用户。
2)、用户只能在数据字典上执行查询操做(select语句),而其维护和修改是由系统自动完成的。
3)、这里咱们谈谈数据字典的组成:数据字典包括数据字典基表和数据字典视图,其中基表存储数据库的基本信息,普通用户不能直接访问数据字典的基表。数据字典视图是基于数据字典基表所创建的视图,普通用户能够经过查询数据字典视图取得系统信息。数据字典视图主要包括user_xxx,all_xxx,dba_xxx三种类型。
                
user_tables: 用于显示当前用户所拥有的全部表,它只返回用户所对应方案的全部表
好比:select table_name from user_tables;
            
all_tables: 用于显示当前用户能够访问的全部表,它不只会返回当前用户方案的全部表,还会返回当前用户能够访问的其它方案的表
好比:select table_name from all_tables;数据库

               

dba_tables: 它会显示全部方案拥有的数据库表。可是查询这种数据库字典视图,要求用户必须是dba角色或是有select any table 系统权限。
例如:当用system用户查询数据字典视图dba_tables时,会返回system,sys,scott...方案所对应的数据库表。oracle

            

3、用户名,权限,角色
在创建用户时,oracle会把用户的信息存放到数据字典中,当给用户授予权限或是角色时,oracle会将权限和角色的信息存放到数据字典。
经过查询dba_users能够显示全部数据库用户的详细信息;
经过查询数据字典视图dba_sys_privs,能够显示用户所具备的系统权限;
经过查询数据字典视图dba_tab_privs,能够显示用户具备的对象权限;
经过查询数据字典dba_col_privs 能够显示用户具备的列权限;
经过查询数据库字典视图dba_role_privs 能够显示用户所具备的角色。工具

              

这里给你们讲讲角色和权限的关系。
1)、要查看scott具备的角色,可查询dba_role_privs;
SQL> select * from dba_role_privs where grantee='SCOTT';
2)、查询orale中全部的系统权限,通常是dba
select * from system_privilege_map order by name;
3)、查询oracle中全部对象权限,通常是dba
select distinct privilege from dba_tab_privs;
4)、查询oracle 中全部的角色,通常是dba
select * from dba_roles;
5)、查询数据库的表空间
select tablespace_name from dba_tablespaces;性能

              

问题1:如何查询一个角色包括的权限?
a.一个角色包含的系统权限
select * from dba_sys_privs where grantee='角色名'
另外也能够这样查看:
select * from role_sys_privs where role='角色名'
b.一个角色包含的对象权限
select * from dba_tab_privs where grantee='角色名'spa

       

问题2:oracle究竟有多少种角色?
SQL> select * from dba_roles;orm

             

问题3:如何查看某个用户,具备什么样的角色?
select * from dba_role_privs where grantee='用户名'server

         

显示当前用户能够访问的全部数据字典视图。
select * from dict where comments like '%grant%';对象

         

显示当前数据库的全称
select * from global_name;it

            

其它说明
数据字典记录有oracle数据库的全部系统信息。经过查询数据字典能够取得如下系统信息:好比
1.对象定义状况
2.对象占用空间大小
3.列信息
4.约束信息
...
可是由于这些个信息,能够经过pl/sql developer工具查询获得,因此这里我就飘过。

              

4、动态性能视图动态性能视图用于记录当前例程的活动信息,当启动oracle server时,系统会创建动态性能视图;当中止oracle server时,系统会删除动态性能视图。oracle的全部动态性能视图都是以v_$开始的,而且oracle为每一个动态性能视图都提供了相应的同义词,而且其同义词是以V$开始的,例如v_$datafile的同义词为v$datafile;动态性能视图的全部者为sys,通常状况下,由dba或是特权用户来查询动态性能视图。由于这个在实际中用的较少,因此飞过

相关文章
相关标签/搜索