Oracle的数据字典是什么

34次阅读
没有评论

共计 2102 个字符,预计需要花费 6 分钟才能阅读完成。

这篇文章主要讲解了“Oracle 的数据字典是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“Oracle 的数据字典是什么”吧!

数据字典是 oracle 存放有关数据库信息的地方,几乎所有的系统信息和对象信息都可在数据字典中进行查询。数据字典是 oracle 数据库系统的信息核心,它是一组提供有关数据库信息的表和视图的集合,这些表和视图是只读的。它是随着数据库的建立而建立的,当数据库执行特定动作时数据字典也会自动更新。数据一览与数据字典来记录、校验和管理正在进行的操作。

Oracle 中,sys 用户是数据字典的拥有者,数据字典保证在所有数据库的系统表空间 system 内,任何用户都无权更改 sys 模式下的模式对象或数据字典中的行。也就是说数据字典只能查询,不能手动进行修改。

一、数据字典用途

Oracle 通过存取数据字典从而比较方便地获取有关用户某事对象和存储结构等信息。当系统执行了 DDL 语句后,oracle 会及时修改数据字典。任何用户只能以读的形式使用数据字典获取数据库信息。

二、数据字典存储的信息

数据用户的名称

为用户授予的权限和角色

模式对象的名。

完整性约束的具体信息;

每个字段的默认值;

数据库空间的使用情况;

存储审计的信息

对象与用户的严格管理 (适用于高度机密管理);

其他一般数据库信息

三、四种前缀的数据字典视图

user_:任何用户都可以读取的视图,每个用户读取的都不一样,它只提供当前用户某事下的对象信息。

 如查询当前模式下的所有对象:
select object_name, object_type from user_objects;

all_:所有用户都可读取的用户视图,它提供与用户有关的对象信息。

 如查询当前用户可访问的所有对象:
select owner, object_name, object_type from all_objects;

dba_:提供了只有数据库管理员才可读取的视图,包括所有用户视图中的对象信息。

 如:
select owner, object_name, object_type from sys.dba_objects;

v$:动态性能视图

动态性能视图用于记录当前例程的活动信息,当启动 oracle server 时,系统会建立动态性能视图;当停止 oracle server 时,系统会删除动态性能视图,oracle 的所有动态性能视图都是以 v_KaTeX parse error: Expected EOF , got 开 at position 1: 开̲始的,并且 oracle 为每个动…开始的,例如_KaTeX parse error: Expected EOF , got 的 at position 9: datefile 的̲同义词为 vdatefile;动态性能视图的所有者为 sys,一般情况下,由 DBA 或是特权用户来查询动态性能视图。

四、查询数据字典示例

查询用户相关的数据字典

 查询用户 
select username from dba_users; -- 只有管理员权限的用户才能查询
select username from all_users; -- 当前或任何用户都可使用

-- 查看当前用户的默认表空间
select username, default_tablespace from user_users;

-- 当前用户角色
select * from user_role_privs;

-- 当前用户的系统权限和表级权限
select * from user_sys_privs;
select * from user_tab_privs;

查询表空间相关的数据字典(拥有 DBA 权限的用户才能查询)

select * 
from dba_data_files;
select * from dba_tablespaces; -- 表空间
select tablespace_name, sum(bytes), sum(blocks) from dba_free_space group by tablespace_name; -- 空闲表空间
select * from dba_data_files where tablespace_name= USERS -- 表空间对于的数据文件
select * from dba_segments where tablespace_name= USERS

-- 查询用户模式对象所使用过的正在使用空间大小
select name, type, source_size, code_size from user_object_size;

查询数据库对象(拥有 DBA 权限的用户才能查询)

select * 
from dba_objects
select * from dba_objects where object_type = upper(package body
select * from dba_objects where OBJECT_TYPE= TABLE and OWNER= SCOTT

感谢各位的阅读,以上就是“Oracle 的数据字典是什么”的内容了,经过本文的学习后,相信大家对 Oracle 的数据字典是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-18发表,共计2102字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)