在oracle 11g中获取授予用户的特权列表时,如何忽略系统创建的表?

在oracle 11g中获取授予用户的特权列表时,如何忽略系统创建的表?,oracle,oracle11g,schema,privileges,Oracle,Oracle11g,Schema,Privileges,我正在使用Oracle11g。我使用userA帐户成功地提取了数据库的DDL,该帐户使用getddl()方法创建了数据库表、SP、函数等 现在这里有一个案例,userA已经将一些操作(例如选择)共享/授权给userB帐户。当我尝试使用相同的getDDL方法获取DDL细节时,它不包括共享表 为了解决这个问题,我使用了以下方法 SELECT * FROM USER_TAB_PRIVS; 声明。使用这个,我可以得到所有共享表的列表以及一些未知的系统表细节 现在我正在寻找一种解决方案,它要么只提供共

我正在使用Oracle11g。我使用userA帐户成功地提取了数据库的DDL,该帐户使用getddl()方法创建了数据库表、SP、函数等

现在这里有一个案例,userA已经将一些操作(例如选择)共享/授权给userB帐户。当我尝试使用相同的getDDL方法获取DDL细节时,它不包括共享表

为了解决这个问题,我使用了以下方法

SELECT * FROM USER_TAB_PRIVS; 
声明。使用这个,我可以得到所有共享表的列表以及一些未知的系统表细节

现在我正在寻找一种解决方案,它要么只提供共享表,要么提供一种可以忽略(过滤)该表的方法

仅供参考:当我执行上述查询时,它会给出输出。 正如预期的那样,它返回与包括系统表在内的所有表以及在数据库中创建的所有用户(包括系统生成的用户)相关的数据


所以,请任何人帮助我创建一个查询,该查询将为我提供与授予所有手动创建而非系统创建的用户的权限相关的数据

要从用户_1获取授予用户_2的所有权限的列表,可以使用以下查询

SELECT * FROM SYS.USER_TAB_PRIVS T WHERE T.GRANTOR = 'USER_2';

您登录哪个用户来执行查询?我已从用户_1登录