我正在尝试确定用户具有什么表权限。 确定此操作的通常方法是:
SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE = '<username>';
但是,我要查找的用户名不在表DBA_TAB_PRIVS中。 但是确实出现在DBA_USERS中,并且我知道用户具有HAS特权,因为他们能够登录并执行SELECT查询。
实际上有很多这样的差异:
SELECT USERNAME, GRANTEE FROM DBA_USERS u
LEFT JOIN DBA_TAB_PRIVS p
ON u.USERNAME = p.GRANTEE
ORDER BY USERNAME
给予:
USERNAME GRANTEE
-------- -------
BOB17 (null)
DBA DBA
DBA DBA
DBA DBA
DBA DBA
JANET5 (null)
STEVE34 (null)
SYSTEM SYSTEM
SYSTEM SYSTEM
SYSTEM SYSTEM
那么我该如何为不在DBA_TAB_PRIVS表中的用户确定特权?