The users listed in the DBA_USERS table do not match the grantees listed in the DBA_TAB_PRIVS table.
So how to I get the privileges for users that are only listed in the DBA_USERS table?
For example, if I do
SELECT USERNAME FROM DBA_USERS;
Then I get a list of login names, such as
USERNAME
--------
BOB17
DBA
JANET5
STEVE34
SYSTEM
And now I want to know what roles and privileges the 'STEVE34' user has.
But when I run the queries suggested online:
SELECT * FROM DBA_SYS_PRIVS;
SELECT * FROM DBA_TAB_PRIVS;
SELECT * FROM DBA_ROLE_PRIVS;
The "Grantee" column does not contain 'BOB17', 'JANET5', 'STEVE34', instead it contains 'SYSTEM', 'PUBLIC', and 'DBA'.
So if 'STEVE34' is not in the Grantee column of any of the PRIVS tables, how do I find out what privileges the user 'STEVE34' has?
The question How to find the privileges and roles granted to a user in Oracle? has 8 answers, none of which solve this question.
I need to know what permissions and roles the users listed in DBA_USERS have, and those users are NOT found in the suggested tables from the linked question.
Further clarification:
If I run this query:
Select USERNAME, GRANTEE from dba_users u
LEFT JOIN dba_tab_privs p
ON u.USERNAME = p.GRANTEE
order by username
This is the result:
USERNAME GRANTEE
-------- -------
BOB17 (null)
DBA DBA
DBA DBA
DBA DBA
DBA DBA
JANET5 (null)
STEVE34 (null)
SYSTEM SYSTEM
SYSTEM SYSTEM
SYSTEM SYSTEM
How can I determine the privileges for users that are not in the DBA_TAB_PRIVS table?
I am absolutely certain that the users do exist and have some kind of privileges, I watched them log in and watched them successfully do SELECT queries.