oracle数据库管理--对象、角色相关查询

1、数据字典:
    记录了数据库的系统信息,它是只读表和视图的集合,数据字典的所有用户者为sys用户。用户只能在数据字典上执行查询操作(select语句),而其维护与修改是由系统自动完成的。数据字典包括数据字典基表和数据字典视图。
    ORACLE中数据字典视图分为3大类, 用前缀区别,分别为:USER,ALL 和 DBA,许多数据字典视图包含相似的信息。
USER_*:有关用户所拥有的对象信息,即用户自己创建的对象信息
ALL_*:有关用户可以访问的对象的信息,即用户自己创建的对象的信息加上其他用户创建的对象但该用户有权访问的信息
DBA_*:有关整个数据库中对象的信息

2、查询用户对应表
1)用于显示当前用户所拥有的所有表,它只返回所对应方案的所有表
SQL>select table_name from user_tables;
2)用于显示当前用户可以访问的所有表,它不仅会返回当前用户方案的所有表,还会返回当前用户可以访问的其它方案的表。
SQL>select table_name from all_tables;
3)用于显示所有方案拥有的数据库表,但是查询这种数据库字典视图,要求用户必须是DBA角色或是有select any table系统权限。
eg:当system用户查询数据字典视图dba_tables时,会返回system、sys、scott···方案所对应的数据库表。
SQL>conn system/manager;
SQL>select table_name from dba_tables;

3、用户名、权限、角色
1)显示所有数据库用户的详细信息
SQL>desc dba_users;
SQL>select username,password from dba_users;
2)显示用户具有的系统权限
SQL> desc dba_sys_privs
SQL> select * from dba_sys_privs where grantee='DBA';
3)显示用户具有的对象权限
SQL> desc dba_tab_privs
SQL> select * from dba_tab_privs where grantee='DBA'
4)显示用户所具有的角色
SQL> desc dba_sys_privs
SQL> select * from dba_role_privs where grantee='SCOTT';
具有CONNECT、RESOURCE角色,ADMIN_OPTION 不可派生

eg:
1)查询某个用户具有怎样的角色
SQL> select * from dba_role_privs where grantee='用户名';
2)查看某个角色包括哪些系统权限
SQL> select * from dba_sys_privs where grantee='CONNECT';
或者
SQL> select * from role_sys_privs where role='CONNECT'
八种系统权限(system privileges),没有对象权限(object privileges)
3)查看某个角色包括对象权限
SQL> select * from dba_tab_privs where grantee='CONNECT';
4)查询oracle中所有的角色,一般为DBA
SQL> select * from dba_roles;
如具有:CONNECT、RESOURCE、DBA等角色
5)查询oracle中所有的系统权限
SQL> select * from system_privilege_map order by name;
6)查询oracle中所有对象权限,一般是dba
SQL> select distinct privilege from dba_tab_privs;
7)查询数据库的表空间
SQL>select tablespace_name from dba_tablespaces;
8)显示当前用户可以访问的所有数据字典视图
SQL> select * from dict where comments like '%grant%';
9)显示当前数据库的全称
SQL> select * from global_name;

原文地址:https://www.cnblogs.com/jiangu66/p/3226199.html