网站首页 > 技术文章 正文
【十一】数据字典
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 共筑美好!
猜你喜欢
- 2024-10-17 oracle数据库设计总结|三大范式 oracle数据库设计规范
- 2024-10-17 数据库(Oracle)序列(Sequence)的基本使用
- 2024-10-17 oracle日常巡检--检查数据库安全 oracle问题排查
- 2024-10-17 浅谈Oracle的执行计划 oracle执行计划sql
- 2024-10-17 [Oracle数据库] Oracle事务和常用数据对象
- 2024-10-17 SQL FOREIGN KEY 约束 sql语句的约束条件
- 2024-10-17 oracle每天做巡检时怎么检查数据库安全呢?
- 2024-10-17 Oracle与其他数据库的区别 oracle数据库和mysql区别
- 2024-10-17 Oracle项目管理系统之进度控制 oracle 项目管理软件
- 2024-10-17 一文搞懂Oracle 0 至 6 级锁(附案例详解)
你 发表评论:
欢迎- 05-11FANUC修改前端目录教程
- 05-11前端分享-Set你不知道的事
- 05-11jq+ajax+bootstrap改了一个动态分页的表格
- 05-11千万级大表分页查询效率剧降,你会怎么办?
- 05-11Elasticsearch深度分页
- 05-11如何写一个简单的分页
- 05-11手速太快引发分页翻车?前端竞态陷阱揭秘
- 05-11「linux」Socket缓存是如何影响TCP性能的?
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端懒加载 (45)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle约束 (46)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)