网站首页 > 数据库 / 正文
【十一】数据字典
11.1什么是数据字典
1)Oracle提供了大量的内部表,它们记录了数据库对象信息。可以将这些内部表划分为两种主要类型:静态的数据字典表和动态的性能表,这些内部表是由oracle维护的,它们都是只读表,用户包括sys都不能修改,只能查看。
2)Oracle数据库字典通常是在创建和安装数据库时被创建的。
11.2数据字典内容
1)数据库中所有模式对象的信息,如表、视图、簇、及索引等。
2)分配多少空间,当前使用了多少空间等。
3)列的缺省值。
4)约束信息的完整性。
5)Oracle用户的名字。
6)用户及角色被授予的权限。
7)用户访问或使用的审计信息。
8)其它产生的数据库信息
11.3数据字典组成
1)数据字典表:是Oracle存放系统数据的表。这些表属于SYS用户。用以存储表、索引、约束以及其他数据库结构信息,通常以$结尾,如tab$,obj$,ts$,aud$等。
2)内部表(X$):Oracle的核心,官网不做说明, Oracle通过大量X$建立起大量视图,仅供用户select
3)数据字典视图:数据字典表上创建,通常分为三类dba_ all_ user_
4)动态性能视图(V$):实时更新反应当前实例的状态,官网对V$视图有详尽的说明。
实际工作中最常用的是数据字典视图和动态性能视图:
广义概念中:v$也属于数据字典范畴。因为v$的结构也是在创建数据库的时候通过执行脚本完成的。与数据字典视图不同的是:v$数据源不是来自system表空间,而是来自内存或控制文件,它在实例启动后被填充,在实例关闭后被清除。
11.4查询静态和动态视图
1)DICT表记录了所有静态视图和动态视图的名称:
SQL> select * from dict where table_name='DBA_OBJECTS';
SQL> select count(*) from dict;
2 )静态数据字典视图: (dba_)
在数据库open状态下访问,可以通过静态视图了解database的架构(记录database的架构
dba_:存储所有用户对象的信息(默认只能有sys/system 用户访问)
all_:存储当前用户能够访问的对象(包括用户所拥有的对象和别的用户授权访问的对象)的信息。
user_:存储当前用户所拥有的对象的相关信息。
3)动态性能视图(V$)
是维护当前实例信息的,由于不断地更新,所以也叫动态视图。其底层是一组虚拟的动态表称为X$表,Oracle不允许直接访问X$表,而是在这些表上创建视图,然后再创建这些视图的同义词。
基表(x$)-------------视图(v_$)--------------同义词v$-------用户访问
可以通过v$fixed_table 视图 查到所有的动态视图的名称,用于调优和数据库监控。
SQL> select count(*) from v$fixed_table;
从Oracle8开始, GV$视图开始被引入,其含义为Global V$,GV$的产生是为了满足OPS环境的需要,除了一些特例以外,每个V$视图都有一个GV$视图存在。
4)如何让普通用户访问dba_xxx的三种授权方法
第一种:
SQL>grant select on dba_objects to scott; 将对象权限授予scott
第二种:
SQL>grant select any dictionary to scott; 将系统权限授权给scott
第三种:
SQL>grant select any table to scott;
SQL>alter system set O7_DICTIONARY_ACCESSIBILITY=true scope=spfile;
5)如何让普通用户访问v$xxx
SQL>grant select on v_$log to scott; 授予Scott 用户v_$对象权限。
the end !!!
@jackman 共筑美好!
Tags:oracle的定义
猜你喜欢
- 2024-11-26 公司培训oracle硬解析、软解析、软软解析,这样解释就可以了
- 2024-11-26 Oracle数据库扩展语言PL/SQL之常量与变量
- 2024-11-26 浅谈Oracle的执行计划
- 2024-11-26 oracle专家课程 思庄
- 2024-11-26 Oracle 19c Concepts (1)
- 2024-11-26 ORACLE体系 - 4
- 2024-11-26 Oracle P6培训系列:15定义资源库
- 2024-11-26 周日福利!ORACLE12c学习指南,初学者必备
- 2024-11-26 关于Oracle 数据库物化视图和物化视图日志总结
- 2024-11-26 【赵强老师】Oracle RAC集群的概念