oracle数据字典及用户权限查看

数据字典和动态性能视图

数据字典是数据库中最重要的组成部分,他提供了数据库的一些系统信息。(静态信息,常规的信息)(基表)

动态性能视图记载了例程启动后的相关信息。(动态信息,变化信息)

 

 

是只读表和视图的集合,所有者为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数据库的基本信息通过这个可以查询

对象的定义

对象占用的空间大小

列信息

约束信息

这些的可以通过图形界面进行查看。

 

你可能感兴趣的:(oracle)