使用sys用戶登錄
select * from dba_users; 查詢數據庫中的所有用戶
select * from dba_roles; 查詢數據庫中的所有角色
select * from dba_sys_privs ; 查詢數據庫中的所有用戶和角色的權限
select * from dba_role_privs; 查詢數據庫中所有用戶的角色
select * from dba_tab_privs; 查詢數據庫中所有用戶的表權限
普通用戶登錄
select * from user_sys_privs; 用戶的擁有的系統權限
查詢用戶擁有的角色權限
select * from (select distinct connect_by_root grantee username,granted_role
from dba_role_privs
connect by prior granted_role =grantee ) a
where exists (select 1 from dba_users b where b.username=a.username)
order by 1,2
;
查詢數據庫所有用戶的系統權限
select d.username,d.privilege from
(select a.username,b.privilege from
(select distinct connect_by_root grantee username,granted_role
from dba_role_privs
connect by prior granted_role =grantee) a,
( select grantee,privilege from dba_sys_privs) b
where a.granted_role=b.grantee
union
select grantee,privilege from dba_sys_privs) d
where exists((select 1 from dba_users c where d.username=c.username))
order by 1,2;
查看數據庫所有用戶的表權限
SQL> select d.username,d.privilege,d.owner,d.table_name from
(select a.username,b.privilege,b.owner,b.table_name from
(select distinct connect_by_root grantee username,granted_role
from dba_role_privs
connect by prior granted_role =grantee) a,
(select grantee,owner,table_name,privilege from dba_tab_privs) b
where a.granted_role=b.grantee
union
select grantee,privilege,owner,table_name from dba_tab_privs) d
where exists((select 1 from dba_users c where d.username=c.username))
order by 1,2;
查看用戶擁有的dba權限
select * from (select distinct connect_by_root grantee username,granted_role
from dba_role_privs
connect by prior granted_role =grantee ) a
where a.granted_role='DBA';
grant dba to panie; 將角色dba賦給用戶panie
revoke dba from panie; 將角色dba從用戶panie移除
ALTER USER panie DEFAULT ROLE ALL; 修改panie的默認角色
create role nie identified by nie; 創建角色
set role nie identified by 1111; 使角色生效
select * from dba_session;