日期:2014-05-16  浏览次数:20430 次

oracle学习笔记10--数据字典和动态性能视图
数据字典和动态性能视图
数据字典是oracle数据库中最重要的组成部分,它提供了数据库的一些系统信息。
动态性能视图记载了例程启动后的相关信息。
数据字典
数据字典记录了数据库的系统信息,它是只读表和视图的集合,数据字典的所有者为sys用户。
用户只能在数据字典上执行查询操作(select语句),而其维护和修改是由系统自动完成的。
数据字典的组成:数据字典包括数据字典基表和数据字典视图,其中基表存储数据库的基本信息,普通用户不能直接访问数据字典的基表。数据字典视图是基于数据字典基表所建立的视图,普通用户可以通过查询数据字典视图取得系统信息。数据字典视图主要包括: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会把用户的信息存放到数据字典中,当给用户授予权限或是角色时,oracle会将权限和角色的信息存放到数据字典中。
通过查询dba_users可以显示所有数据库用户的详细信息
通过查询数据字典视图dba_sys_privs,可以显示用户所具有的系统权限
通过查询数据字典视图dba_tab_privs可以显示用户所具有的对象权限
通过查询数据字典视图dba_col_privs可以显示用户具有的列权限
通过查询数据库字典视图dba_role_privs可以显示用户所具有的角色
查询oracle中所有的系统权限,一般是DBA:
select * from system_privilege_map order by name;
查询oracle中的所有角色,一般是DBA:
select * from dba_roles;
查询oracle中所有的对象权限,一般是DBA
select distinct privilege from dba_tab_privs;
查询数据库的表空间
select tablespace_name from dba_tablespaces;

那么,一个角色具有哪些权限呢?
我们知道权限分为系统权限和对象权限,我们先看看系统权限:
SQL> select * from dba_sys_privs where grantee='CONNECT';

GRANTEE                        PRIVILEGE                                ADMIN_OPTION
------------------------------ ---------------------------------------- ------------
CONNECT                        CREATE SESSION                           NO

SQL>  select * from dba_sys_privs where grantee='RESOURCE';

GRANTEE                        PRIVILEGE                                ADMIN_OPTION
------------------------------ ---------------------------------------- ------------
RESOURCE                       CREATE TRIGGER                           NO
RESOURCE                       CREATE SEQUENCE                          NO
RESOURCE                       CREATE TYPE                              NO
RESOURCE                       CREATE PROCEDURE