我正在使用Oracle 11g。我使用getAdl()方法创建数据库表,SP,函数等的userA帐户成功提取数据库的DDL。
现在这里有一个案例userA已经共享/授予某个动作(即选择)到userB帐户。当我尝试使用相同的getDDL方法获取DDL详细信息时,它不包括共享表。
为了解决这个问题,我使用了以下内容。
SELECT * FROM USER_TAB_PRIVS;
声明。使用这个我可以得到所有共享表的列表,其中包含一些未知的系统表详细信息。
现在我正在寻找的解决方案要么只提供共享表,要么使用我可以忽略(过滤)表的方式
仅供参考:当我执行上述查询时,它会输出this。 正如预期的那样,它返回与所有表相关的数据,包括系统表和在数据库中创建的所有用户,包括系统生成的用户。
那么请有人帮我创建一个查询,该查询会向我提供与手动创建而不是系统创建的所有用户的权限相关的数据吗?
答案 0 :(得分:0)
要获取USER_1给USER_2的所有权限列表,您可以使用以下查询。
SELECT * FROM SYS.USER_TAB_PRIVS T WHERE T.GRANTOR = 'USER_2';