数据字典:oracle数据库中最重要的组成部分,提供了数据库的一些系统信息。
动态性能视图记载了历程启动后的相关信息。
数据字典记录了数据库的系统信息,它是只读表和视图的集合,数据字典的所有者sys用户。用户只能在数据字典上执行查询操作(select语句),而其维护和修改是由系统自动完成。
数据字典的组成:数据字典包括数据字典表和数据字典视图,其中基表存储数据库的基本信息,普通用户不能直接访问数据字典的基表。数据字典视图是基于数据字典基表建立的视图,普通用户可以通过查询数据字典视图得到系统信息,数据字典视图主要包括user_xxx ,all_xxx,dba_xxx三种类型。
user_table:
用于显示当前用户所拥有的所有表,它只返回用户所对应的方案的所有表
select table_name from user_tables;
all_tables:用于显示当前用户可以访问的所有表。他不仅会返回当前用户方案的所有表,还会返回当前用户可以访问的其它方案的表;
比如:select table_name from all_tables;
dba_tables
它会显示所有方案拥有的数据库表,但是查询这种数据库字典视图,要求用户必须是dba角色或是有select any table系统权限。system,sys,scott 等 方案所对应的的数据库表。
用户、权限、角色
在建立用户时,oracle会把用户信息存放在数据字典中,当给用户授予权限或是角色时,oracle会将权限和角色的信息存放到数据字典中。
通过查询dba_users可以显示所有的数据库用户的详细信息;
通过数据字典视图dba_sys_privs,可以显示用户具有的系统权限 ;
通过数据字典视图dba_tab_privs,可以显示用户具有的对象权限 ;
通过数据字典视图dba_col_privs,可以显示用户具有的列权限 ;
通过数据字典视图dba_role_privs,可以显示用户具有的角色 ;
查询系统权限,一般是dba:
SQL> select * from system_privilege_map order by name ;
查询oracle中所有的角色,一般是dba:
SQL> select * from dba_roles;
查询oracle中的所有的对象权限 一般是dba:
SQL> select distinct privilege from dba_tab_privs;
查看数据库的表空间:
SQL> 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 grantee ='角色名'
1、 ?如何查询一个角色包括的权限。
a.一个角色包含的系统权限
b.一个角色包含的对象权限
2、oracle究竟有多少种角色?
select * from dba_roles;
3、查看某个用户,具有什么样的角色?
select * from dba_role_privs where grantee='scott'
显示当前用户可以访问的所有数据字典视图;
select * from dict where comments like '%grant%'
显示当前数据库的全称
select * from global_name
其他说明
数据字典记录有oracle数据库的所有系统信息,通过查询数据字典可以去的下列系统信息:比如
(1)对象定义情况
(2)对象占用空间大小
(3)列信息
(4)约束信息
动态视图
图3