文档章节

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

openlife
 openlife
发布于 2015/07/13 14:35
字数 1158
阅读 84
收藏 0

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

           

二、数据字典
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会把用户的信息存放到数据字典中,当给用户授予权限或是角色时,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='角色名'

       

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

             

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

         

显示当前用户可以访问的所有数据字典视图。
select * from dict where comments like '%grant%';

         

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

            

其它说明
数据字典记录有oracle数据库的所有系统信息。通过查询数据字典可以取得以下系统信息:比如
1.对象定义情况
2.对象占用空间大小
3.列信息
4.约束信息
...
但是因为这些个信息,可以通过pl/sql developer工具查询得到,所以这里我就飘过。

              

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


本文转载自:http://www.cnblogs.com/linjiqin

openlife
粉丝 4
博文 23
码字总数 3477
作品 0
天津
程序员
私信 提问
Oracle 11g R2 数据字典

数据字典是oracle存储关键信息的表和视图的集合。oracle进程会在sys模式中维护这些表和视图,也就是说数据字典的所有者为sys用户,数据存放在system表空间中,数据字典描述了实际数据是如何组...

Love小敏
2018/06/26
0
0
Oracle之数据字典

数据字典 数据字典是oracle数据库中最重要的组成部分,它提供了数据库的一些系统信息 数据字典记录了数据库的系统信息,它是只读表和视图的集合,数据字典的所有者是sys用户 用户只能在数据字...

落轩易离落
2016/09/26
0
0
oracle数据库 数据字典及动态性能视图

oracle官方:http://docs.oracle.com/cd/E11882_01/server.112/e40540/datadict.htm#CNCPT002 数据字典是只读的表和视图,动态性能视图在数据库运行时不断进行更新。 Overview of the Data D...

柴火
2014/09/26
0
0
11_Oracle_Admin_数据字典和动态性能表概述

一、数据字典 Data Dictionary 存储的是控制信息:如有多少张表,表的结构等等 Performance tables: 也称为DynamicPerformance tables,即动态性能表,反应了系统的性能特征,是动态的,以表的...

wuyeyoulanjian
2018/06/26
0
0
Oracle数据库常用数据字典

Oracle数据字典的构成 Oracle数据字典名称由前缀和后缀组成,使用下划线连接。其代表的含义如下。 USER:记录用户的对象信息。 ALL:记录用户的对象信息及被授权访问的对象信息。 DBA:包含数据...

第五郎
2014/03/28
116
0

没有更多内容

加载失败,请刷新页面

加载更多

shangcheng-my

1.数据库主键、外键类型为bigint,那么在后台应该用什么类型的变量定义? 后台用string接收,因为前段传过来的一般都是json字符串,后台直接接收,mysql是可以吧数字类型的字符串转换为对应的...

榴莲黑芝麻糊
昨天
4
0
微服务架构依赖图

基于spring-cloud-alibaba + dubbo

龙影
昨天
5
0
Centos7 安装zabbix-agent

rpm -i https://repo.zabbix.com/zabbix/4.2/rhel/6/x86_64/zabbix-release-4.2-2.el6.noarch.rpm 可以到https://repo.zabbix.com/zabbix找到对应的版本 yum install zabbix-agent -y 出现E......

abowu
昨天
8
0
文本编辑器GNU nano 4.4 发布

GNU nano 4.4 "Hagelslag" 更新日志: 启动时,光标可以放在第一个或最后一个出现位置 字符串前面带有+/string 或 +?string的字符串。 发生自动硬包装时((--breaklonglines),任何前导引号...

linuxCool
昨天
7
0
你知道字节序吗

字节序 最近在调一个自定义报文的接口时,本来以为挺简单的,发现踩了好几个坑,其中一个比较“刻骨铭心”的问题就是数据的字节序问题。 背景 自定义报文,调用接口,服务端报文解析失败 iO...

杭城小刘
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部