查询已有的存储过程
1)以sysdba权限登录
conn system/manager
2)select * from all_objects a where a.object_type= 'PROCEDURE ' AND A.OWNER= '用户 '
查询会话当前允许的角色清单
select * from from session_roles;
查询数据库中所有角色
select * from dba_roles
查询用户及被授予的角色
select * from dba_role_privs
记录用户和这个用户对于的对象权限的关系表
select * from dba_tab_privs where grantee = 'TEST1';
dba_role_privs来查询相关用户的role的赋予
select * from dba_role_privs where grantee = 'TEST1';
sysdba和sysoper,我们也可以在grant里指定这两个权限,但是他们并不是权限,也不能理解为角色,我这里个人把他们理解为身份,是登录数据库的一种身份,这样一说你是不是有影响了、我们总是有 sqlplus / as sysdab这样的使用,其实这里的sysdba是一种身份。
SQL>grant sysdba to test1;
SQL>grant sysoper to test1;
SQL> select * from V$pwfile_users where username = 'TEST1';
USERNAME SYSDBA SYSOPER
------------------------------ ------ -------
TEST1 TRUE TRUE
这里是通过动态视图V$pwfile_users来查的,和上面一些数据表不同,这个是一个动态视图,是从密码文件里读出来的。