数据字典乍一看以为是数据的基本组成单位,但事实上Oracle数据库中最要的组成部分,它提供了数据库的一些系统信息,在形式上表现为只读表和视图的集合,数据字典的所有者为sys用户。用户只能在数据字典上执行查询操作,而其维护和修改时由系统自动完成,中培伟业为你深度剖析数据字典.
数据字典的组成:
1、数据字典基表。用来存储数据库的基本信息,普通用户不能直接访问数据字典的基表。
2、数据字典视图。数据字典视图时基于数据字典基表所建立的视图,普通用户可以通过查询数据字典视图取得系统信息。数据字典主要包括user_xxx,all_xxx,dba_xxx三种类型。
在数据字典层面,分为用户名,权限,角色在建立用户时,Oracle会把用户的信息存放到数据字典中,当给用户授予权限或是角色时,Oracle会将权限和角色的信息存放到数据字典。通过查询dba_users可以显示所有数据库用户的详细信息。通过查询dba_sys_privs可以显示用户所具有的系统权限。通过查询dba_tab_privs可以显示用户所具有的对象权限。通过查询dba_col_privs可以显示用户具有的列权限。通过查询dba_role_privs可以显示用户所具有的角色。
查询Oracle中所有的系统权限,一般是dbasql>select * from system_privilege_map order by name;查询Oracle中所有的角色,一般是dbasql>select * from dba_roles;查询Oracle中所有对象权限,一般是dbasql>select distinct privilege from dba_tab_privs;查询数据库的表空间sql>select tablespace_name from dba_tablespaces;查询一个角色,包括哪些权限
a、一个角色包含的系统权限
方法一:sql>select * from dba_sys_privs where grantee='CONNECT';
方法二:sql>select * from role_sys_privs where role='CONNECT';
b、一个角色包含的对象权限
sql>select * from dba_tab_privs wheregrantee='CONNECT';
6)如何查询某个用户,具有什么样的角色
sql>select * from dba_role_privs where grantee='SCOTT'
7)显示当前用户可以访问的所有数据字典视图
sql>select * from dict where comments like '%grant%';
8)显示当前数据库的全称
sql>select * from global_name;
来自中培伟业的专业描述是否已经让你的思路清晰了一点呢,我们相信,精心总结的专业知识一定能让你玩转Oracle数据库管理。