数据字典
数据字典
oracle数据库中最重要的组成部分,它提供了数据库的一些系统信息
它是只读表和视图的集合,所有者为sys用户
数据字典记录了数据库的系统信息,通过查询数据字典可以取得以下系统信息:
(1)对象定义情况
(2)对象占用空间大小
(3)列信息
(4)约束信息
……
动态性能视图
记载了例程启动后的相关活动信息
当启用oracle server时,系统会建立动态性能视图
当停止oracle server时,系统会删除动态性能视图
oracle的所有动态性能视图都是以v_$开始的
并且oracle为每个动态性能视图都提供了相应的同义词
可看不可动
用户只能在数据字典上执行查询操作(select语句),而其维护和修改是由系统自动完成的
数据字典的组成
- 数据字典基表(存放静态数据)
存储数据库的基本信息,普通用户不能直接访问 - 数据字典视图(存放动态数据)
基于数据字典基表建立的视图,普通用户可以通过查询视图取得系统信息
user_tables
用于显示当前用户所拥有的所有表,它只返回用户所对应方案的所有表
select table_name from user_tables;
all_tables
用户显示当前用户可以访问的所有表,它不仅会返回当前用户方案的所有表,还会返回当前用户可以访问的其它方案的表
select table_name from all_tables;
dba_tables
显示所有方案拥有的数据库表,要求用户是dba角色或由select any table的系统权限
select table_name from dba_tables;
用户名、权限、角色
在建立用户时,oracle会把用户的信息存放到数据字典中
当给用户授予权限或角色时,oracle会将权限和角色的信息存放到数据字典
通过查询 | 可达成效果 |
---|---|
dba_users | 显示所有数据库用户的详细信息 |
数据字典视图 dba_sys_privs | 显示用户所具有的系统权限 |
数据字典视图 dba_tab_privs | 显示用户具有的对象权限 |
数据字典 dba_col_privs | 显示用户具有的列权限 |
数据字典视图 dba_role_privs | 显示用户所具有的角色 |
--拥有哪些用户
select username from dba_users;
--查看scott具有的角色
select * from dba_role_privs where grantee = 'scott';
--通过desc dba_role_privs查询出列名称grantee
--查询oracle中所有的系统权限,一般是dba
select * from system_privilege_map
order by name;
--查询oracle中所有的角色,一般是dba
select * from dba_role;
--查询oracle中所有对象权限,一般是dba
select distinct privilege from dba_tab_privs;
--查询数据库中的表空间
select tablespace_name from dba_tablespaces;
--查询某个用户具有怎样的角色
select * from dba_role_privs where grantee = '用户名';
--查询某个角色包括哪些系统权限
select * from dba_sys_privs where grantee = 'DBA';
select * from role_sys_privs where role = 'DBA';
--查看某个角色包括的对象权限
select * from dba_tab_privs where grant = '角色名';
--显示当前用户可以访问的所有数据字典视图
select * from dict where comments like '%grant%';
--显示当前数据库的全称
select * from global_name;