

数据字典,查询当前用户具有表和角色,以及角色的系统与对象权限,查询所有用户,角色,系统权限,字典视图,使用的数据库名
接18讲。。。。。。。。。。。。。。。。。。。。。
一、数据字典,包括数据基表和动态性能视图
注:数据基表是数据库的组成部分,用以存放数据库系统静态信息,包括一些只读表和视图,如用户权限,角色信息表等,所有者为sys,普通用户只能查询
动太性能视图,为系统例程启动后的一些动态信息
注2:当不知道要查询的表字段名时,首先用 desc 表名; 显示表结构,例:desc dba_users;
1.查询当前用户能管理的、能访问权的表,以及所有用户的表,分为user_xxx, all_xxx, dba_xxx三种类型
select table_name from user_tables; //查询当前用户的能管理的表,user_tables中user表当前用户,tables即表
select table_name from all_tables//显示当前用户能访问的所有表,包括授权的其它方案的表
select table_name from dba_tables;//显示所有方案的所有表,需要先用conn system/manager;切换到有dba的权限system用户
2.查询oracle数据库的所有用户和密码
select username,password from dba_users;//查看oracle数据库中的所有用户和括密码
dba_users 此表保存oracle数据库所有用户
3.使用命令与工具查询某个角色具有的系统权限与对象权限
1)查看一个角色具有的系统权限
select * from dba_sys_privs where grantee='CONNECT'; //查询CONNECT角色包括那些系统权限
select * from role_sys_privs where role='CONNECT'; //此方法也可以查询CONNECT角色包括那些系统权限,实测此法无效
注:dba_sys_privs表保存用户系统权限
2)查看一个角色具有的对象权限
select distinct privilege from dba_tab_privs;//查询oracle中有那些对象权限
select * from dba_tab_privs where grantee='JIAOSE1';//查询JIAOSE1角色有那些对象权限,注:有角色无对象权限,如connect
dba_tab_privs表保存用户对象权限
3)使用pl.sql工具查询CONNECT角色的对象和系统权限,
打开pl.sql,左边栏点Roles——CONNECT,再Object privileges或System privileges
4.查看一个用户具有那些角色
select * from dba_role_privs where grantee='SCOTT'; //查看SCOTT用户具有那些角色
注:dba_role_privs表保存用户拥有的角色
5.查询oracle所有角色和所有系统权限
select * from dba_roles; //查询到有25种角色,要用system用户登录
select * from system_privilege_map order by name;//查询oracle中所有系统权限 ,
开始错误是因为把表名写成ystem_prilvilege_map,
dba_col_privs 此表保存用户的列权限
6.显示当前用户能访问的所有数据字典视图
select * from dict where comments like '%grant%';
二、select * from global_name;//查询正在使用的数据库名
查询结果为:MYORA1.US.ORACLE.COM ,US.ORACLE.COM为oracle加的域名
其它说明
数据字典记录oracle数据库的所有系统信息,可查询对象定义情况,对象占用空间,列信息,约束信息
动态性能视图,