I noticed an interesting thing today. Consider a system where the production and test databases are equipped with the same privileges. In the production database, a user can select the table under another user without the ability to select. However, this process does not happen in the test database. What could be the reason for this situation in the production database?
Production database privileges:
ALTER ANY PROCEDURE CREATE ANY CREDENTIAL CREATE ANY JOB CREATE ANY PROCEDURE CREATE ANY RULE CREATE ANY SEQUENCE CREATE ANY TABLE CREATE ANY TRIGGER CREATE ANY TYPE CREATE ANY VIEW CREATE PROCEDURE CREATE TABLE CREATE TRIGGER CREATE VIEW DEBUG ANY PROCEDURE EXECUTE ANY PROCEDURE GRANT ANY PRIVILEGE GRANT ANY ROLE AQ_ADMINISTRATOR_ROLE AUTHENTICATEDUSER CONNECT EXP_FULL_DATABASE JAVA_ADMIN JAVADEBUGPRIV JAVA_DEPLOY JAVAIDPRIV JAVASYSPRIV JAVAUSERPRIV select * from dba_tab_privs where grantee='USER1' and owner='USER2' and table_name='TABLE_NAME_OWNED_BY_USER2' order by table_name, privilege; no rows selected
But USER1 can select this table.