Oracle学习笔记(十六)——数据字典和动态性能视图
2016-04-15 21:50
330 查看
一、介绍
1、数据字典:oracle数据库中最重要的组成部分,提供了数据库的一些系统信息(静态)。
2、动态性能视图:记载了例程启动后的相关信息(动态)。
二、数据字典
1、数据字典:记录了数据库的系统信息,是只读表和视图的集合,数据字典的所有者为sys用户。用户只能在数据字典上执行查询操作(select语句),而其维护和修改是由系统自动完成的。
2、数据字典的组成:包括数据字典基表和数据字典(动态性能)视图。
1)数据字典基表:存储数据库的基本信息,普通用户不能直接访问数据字典的基表。
2)数据字典(动态性能)视图:基于数据字典基表所建立的视图,普通用户可以查询数据字典视图取得系统信息。主要包括: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...方案所对应的数据库表。
3、用户名、权限和角色
1)在建立用户时,oracle会把用户的信息存放到数据字典中,当给用户授予权限或角色时,oracle会将权限和角色的信息存放到数据字典中。
通过查询表dba_users可以显示所有数据库用户的详细信息;
select username
from dba_users;
通过查询数据字典视图表 dba_sys_privs,可以显示用户所具有的系统权限;
通过查询数据字典视图表 dba_tab_privs可以显示用户具有的对象权限;
通过查询数据字典表 dba_con_privs可以显示用户具有的列权限;
通过查询数据库字典表 dba_role_privs可以显示用户所具有的角色。
2)示例
如何查询一个角色包括的权限
一个角色包含的系统权限
select * from dba_sys_privs
where grantee='CONNECT';
select * from role_sys_privs
where role='CONNECT';
一个角色包含的对象权限
select * from dba_tab_privs
where grantee='CONNECT';
查询oracle中所有的系统权限
SQL>
select * from system_privilege_map order by name;(共208个)
查询oracle中所有对象权限,一般是dba
SQL>
select distinct privilege from dba_tab_privs;(共17个)
查询oracle中的所有角色,一般是dba
SQL>
select * from dba_roles;(共55个)
查询数据库的表空间
SQL>
select tablespace_name from dba_tablespaces;
查看scott具有的角色
SQL>
desc dba_role_privs;
SQL> select * from dba_role_privs
where grantee='SCOTT';
4、数据字典示例
显示当前用户可以访问的所有数据字典视图
select * from dict
where comments like '%grant$';
显示当前数据库的全称
select * from global_name;
5、其他说明
数据字典记录有oracle数据库的所哟系统信息,通过查询数据字典可以取得以下系统信息,比如:
1)对象定义情况
2)对象占用空间大小
3)列信息
4)约束信息
三、动态性能视图
1、动态性能视图
用于记录当前例程的活动信息。当启动oracle server时,系统会建立动态性能视图;当停止oracle server时,系统会删除动态性能视图。
oracle所有的动态性能视图都是以v_$开始的,并且oracle为每个动态性能视图都提供了相应的同义词,并且其同义词是以V$开始的。
v_$datafile的同义词为V$datafile
动态性能视图的所有者为sys。一般情况下,由dba或是特权用户来查询动态性能视图。
1、数据字典:oracle数据库中最重要的组成部分,提供了数据库的一些系统信息(静态)。
2、动态性能视图:记载了例程启动后的相关信息(动态)。
二、数据字典
1、数据字典:记录了数据库的系统信息,是只读表和视图的集合,数据字典的所有者为sys用户。用户只能在数据字典上执行查询操作(select语句),而其维护和修改是由系统自动完成的。
2、数据字典的组成:包括数据字典基表和数据字典(动态性能)视图。
1)数据字典基表:存储数据库的基本信息,普通用户不能直接访问数据字典的基表。
2)数据字典(动态性能)视图:基于数据字典基表所建立的视图,普通用户可以查询数据字典视图取得系统信息。主要包括: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...方案所对应的数据库表。
3、用户名、权限和角色
1)在建立用户时,oracle会把用户的信息存放到数据字典中,当给用户授予权限或角色时,oracle会将权限和角色的信息存放到数据字典中。
通过查询表dba_users可以显示所有数据库用户的详细信息;
select username
from dba_users;
通过查询数据字典视图表 dba_sys_privs,可以显示用户所具有的系统权限;
通过查询数据字典视图表 dba_tab_privs可以显示用户具有的对象权限;
通过查询数据字典表 dba_con_privs可以显示用户具有的列权限;
通过查询数据库字典表 dba_role_privs可以显示用户所具有的角色。
2)示例
如何查询一个角色包括的权限
一个角色包含的系统权限
select * from dba_sys_privs
where grantee='CONNECT';
select * from role_sys_privs
where role='CONNECT';
一个角色包含的对象权限
select * from dba_tab_privs
where grantee='CONNECT';
查询oracle中所有的系统权限
SQL>
select * from system_privilege_map order by name;(共208个)
查询oracle中所有对象权限,一般是dba
SQL>
select distinct privilege from dba_tab_privs;(共17个)
查询oracle中的所有角色,一般是dba
SQL>
select * from dba_roles;(共55个)
查询数据库的表空间
SQL>
select tablespace_name from dba_tablespaces;
查看scott具有的角色
SQL>
desc dba_role_privs;
SQL> select * from dba_role_privs
where grantee='SCOTT';
4、数据字典示例
显示当前用户可以访问的所有数据字典视图
select * from dict
where comments like '%grant$';
显示当前数据库的全称
select * from global_name;
5、其他说明
数据字典记录有oracle数据库的所哟系统信息,通过查询数据字典可以取得以下系统信息,比如:
1)对象定义情况
2)对象占用空间大小
3)列信息
4)约束信息
三、动态性能视图
1、动态性能视图
用于记录当前例程的活动信息。当启动oracle server时,系统会建立动态性能视图;当停止oracle server时,系统会删除动态性能视图。
oracle所有的动态性能视图都是以v_$开始的,并且oracle为每个动态性能视图都提供了相应的同义词,并且其同义词是以V$开始的。
v_$datafile的同义词为V$datafile
动态性能视图的所有者为sys。一般情况下,由dba或是特权用户来查询动态性能视图。
相关文章推荐
- Oracle学习笔记(十五)——数据库(表)的逻辑备份与恢复
- 怎么用oracle数据泵导数据
- 新增数据文件导致dataguard同步异常
- oracle 恢复到之前某个时间点
- Oracle学习笔记(十四)——数据库管理
- Oracle Database Reserved Words
- oracle HA 高可用性具体解释(之二,深入解析TAF,以及HA框架)
- Linux下安装Oracle的过程和涉及的知识点-系列6
- Oracle中由 case when 报错 ORA-12704:字符集不匹配的简易解决
- Oracle字符集的查看查询和Oracle字符集的设置修改(续)
- Oracle DMP文件异常解决
- Oracle字符集的查看查询和Oracle字符集的设置修改
- oracle触发器书写方法
- oracle 存储过程
- Oracle Job 语法和时间间隔的设定
- oracle触发器
- Oracle 数组赋值
- [转] JAVA读取excel数据(插入oracle数据库)
- Oracle中给用户授予debug权限
- Linux下启动Oracle