数据字典

数据字典

1 什么是数据字典

  Oracle提供了大量的内部表,它们记录了数据库对象的更改和修正。可以将这些内部表划分为两种主要类型: 静态的数据字典动态的性能表

这些内部表是由oracle维护的,它们都是只读表。用户包括sys不能修改,只能查看

  Oracle数据字典通常是在创建和安装数据库时被创建的

 

2 数据字典内容

  • 数据库中所有模式对象的信息,如表、视图、簇、及索引等
  • 分配多少空间,当前使用了多少空间等
  • 列的缺省值
  • 约束信息的完整性
  • Oracle用户的名字
  • 用户及角色被授予的权限
  • 用户访问或使用的审计信息
  • 其它产生的数据库信息

 

3 数据字典组成

数据字典表是Oracle存放系统数据的表。这些表属于SYS用户。用以存储表、索引、约束以及其他数据库结构信息,通常以$结尾,如tab$、obj$、ts$、aud$

内部表X$Oracle 的核心,官网不做说明,Oracle通过大量X$建立起大量视图,仅供用户select

数据字典视图数据字典表上创建,通常分为三类dba_、all_、user_

动态性能视图(v$实时更新反应当前实例的状态,官网对v$视图有详尽的说明

实际工作中最常用的是数据字典视图动态性能视图

广义概念中:v$也属于数据字典范畴。因为v$的结构也是在创建数据库的时候通过执行脚本完成的。与数据字典视图不同的是:v$数据源不是来自system表空间,而是来自内存或控制文件,它在实例启动后被填充,在实例关闭后被清除

 

4 查询静态和动态视图

4.1 dictdictionary

dict表记录了所有静态视图和动态视图的名称

select count(*) from dict;
select * from dict where table_name='DBA_OBJECTS';

4.2 数据字典视图:静态(static)视图

在数据库open状态下访问,可以通过静态视图了解database的架构

dba_存储所有用户对象的信息(默认只能有sys/system用户访问)

all_存储当前用户有权限访问的对象的信息(包括用户所拥有和其他用户授权访问的)

user_:存储当前用户所拥有的对象的相关信息

startup mount force;
select status from v$instance;

select tablespace_name from dba_tablespaces;

select name from v$tablespace;

alter database open;
select tablespace_name from dba_tablespaces;

4.3 动态性能视图(v$

是维护当前实例信息的,由于不断的更新,所以也叫动态视图

其底层是一组虚拟的动态表称为X$表,Oracle不允许直接访问X$表,而是在这些表上创建视图,然后再创建这些视图的同义词。

基表(x$)-------------视图(v_$)--------------同义词v$---------------用户访问

explain plan for select tablespace_name from dba_tablespaces;
@?/rdbms/admin/utlxplp.sql

可以通过v$fixed_table视图查到所有的动态视图的名称;用于调优和数据库监控

select count(*) from v$fixed_table;

GV$视图含义为Global V$,大多数V$视图都有一个GV$视图存在。RAC环境查看gv$

4.4 普通用户访问dba_xxx

第一种:授予具体视图查询权限

grant select on dba_objects to scott;

回收权限

revoke select on dba_objects from scott;

第二种:授予查select any dictionary系统权限

grant select any dictionary to scott;

第三种:授予select_catalog_role角色

grant select_catalog_role to scott;

第四种【不推荐】

grant select any table to scott;
alter system set O7_DICTIONARY_ACCESSIBILITY=true scope=spfile;

4.5 如何让普通用户访问v$xxx

grant select on v_$log to scott;        --授予scott用户v_$对象权限

posted @ 2021-06-07 18:03  chchcharlie、  阅读(920)  评论(0编辑  收藏  举报