数据字典和动态性能视图
数据字典是数据库中最重要的组成部分,他提供了数据库的一些系统信息。(静态信息,常规的信息)(基表)
动态性能视图记载了例程启动后的相关信息。(动态信息,变化信息)
是只读表和视图的集合,所有者为sys用户。
用户只能在数据字典上进行查询操作,其他的维护和修改是系统自动完成。
数据字典的组成:
包括基表和数据字典视图。
基表存放数据库的基本信息,普通用户不能直接访问,数据库基表,
数据字典视图是基于数据字典基表建立的视图,普通用户可以通过查询数据字典视图取得系统信息。三种类型:
User_xxx, all_xxx, dba_xxx;
就是他是那个范围内的东西,
例如用户下的表
User_tables;用于显示当前用户所拥有的所有表,返回用户所对应方案的表。
Select table_name from user_tables;
All_tables;显示当前用户能访问到的表。自己创建,别人授权的。
Select table_name from all_tables;
Dba_tables;他可以显示所有方案拥有的数据库表,要求用户必须是dba角色或者是select any table 系统权限的用户。
必须是dba权限用户,一般用户是不会查到的。
用户名,权限,角色
在建立用户的时候oracle就会把信息保存到数据字典里,当用户授权限或者角色时,oracle同样就会把信息存在数据字典中去。
通过查询dba_user显示所有数据库用户信息。
Desc dba_users;
Select username ,password from dba_users;
通过查询数据字典视图dba_sys_privs显示用户所具有的系统权限;
通过查询数据字典 dba_tab_privs可以显示用户具有的对象权限
通过查询数据字典 dba_col_privs可以查询用户具有的列权限
通过查询数据字典dba_role_privs可以显示用户所具有的角色
查看scott具有的角色 desc dba_role_privs;查看视图的结构。然后根据对应的字段来查询
Select *(可以加字段)from dba_role_privs;
Select *from dba_role_privs where grantee=’SCOTT’;
查看所有角色 select *from dba_roles;//55个
所有系统权限208个
Select*from system_privilege_map order by name;
对象权限?17个
Select distinct privilege from dba_tab_privs;
查看一个角色的具体权限?
查看角色的系统权限 836个
Select *from dba_sys_privs where grantee=’角色名’;
另外可以使用角色来查询 349
Select *from role_sys_privs where role=’角色名’;
查看角色的对象权限
Select *from dba_tab_privs where grantee=’角色名’;
如何知道一个用户拥有那些角色?
Select *from dba_role_privs where grantee =’用户名’;
显示当前用户可以访问的数据字典的视图(不同的用户有不同的权限)
Select *from dict where comments like ‘%grant%;’
显示当前数据库的全称
Select *from global_name;
数据字典其他说明
数据字典记录oracle数据库的基本信息通过这个可以查询
对象的定义
对象占用的空间大小
列信息
约束信息
这些的可以通过图形界面进行查看。