--Oracle查询用户、角色和权限信息
--DBA_* 描述的是数据库中的所有对象
--ALL_* 描述的是当前用户有访问权限的所有对象
--USER_* 描述的是当前用户所拥有的所有对象
--表名带有“DBA”的需要有DBA权限才能访问
--查询oracle用户:
SELECT * FROM DBA_USERS T ORDER BY T.CREATED DESC;
SELECT * FROM ALL_USERS T ORDER BY T.CREATED DESC;
SELECT * FROM USER_USERS T ORDER BY T.CREATED DESC;
--查询oracle有效用户
SELECT *
FROM DBA_USERS T
WHERE T.ACCOUNT_STATUS = 'OPEN'
ORDER BY T.USERNAME;
--查询oracle用户的默认表空间
SELECT T.USERNAME, T.DEFAULT_TABLESPACE
FROM DBA_USERS T
ORDER BY T.USERNAME;
--查询oracle拥有sysdba或sysoper权限的用户
SELECT * FROM V$PWFILE_USERS;
--查询oracle角色
SELECT * FROM DBA_ROLES T ORDER BY T.ROLE;
--查询oracle角色拥有的系统权限(只显示当前用户拥有的角色)
SELECT * FROM ROLE_SYS_PRIVS T ORDER BY T.ROLE;
--查询oracle角色拥有的系统权限(显示系统所有角色)
SELECT * FROM DBA_ROLE_PRIVS T ORDER BY T.GRANTEE;
--查询oracle当前用户对应的角色
SELECT * FROM USER_ROLE_PRIVS T ORDER BY T.GRANTED_ROLE;
--查询oracle用户拥有的系统权限(没有ALL版本)
SELECT * FROM DBA_SYS_PRIVS T ORDER BY T.GRANTEE;
--查询oracle指定用户拥有的系统权限
SELECT *
FROM DBA_SYS_PRIVS T
WHERE T.GRANTEE = 'SSTA_ARIES'
ORDER BY T.PRIVILEGE;
SELECT * FROM USER_SYS_PRIVS T ORDER BY T.PRIVILEGE;
--查询oracle用户拥有的对象权限
SELECT * FROM DBA_TAB_PRIVS T ORDER BY T.GRANTEE;
SELECT * FROM ALL_TAB_PRIVS T ORDER BY T.GRANTEE;
SELECT * FROM USER_TAB_PRIVS T ORDER BY T.GRANTEE;
--查询oracle当前会话的权限
SELECT * FROM SESSION_PRIVS T ORDER BY T.PRIVILEGE;