如何获取特定用户的所有功能列表?
编辑问题澄清:
当(作为USER1)我跑
select * from all_objects where owner = 'USER2' and object_type = 'FUNCTION';
它不会返回我知道USER2拥有的所有函数.我怀疑它只返回允许USER1查看/执行的那些函数.
怀疑是否正确?
此外,如果这是真的,有没有办法解决这个问题?
解决方法
是的,你的怀疑是正确的. ALL_OBJECTS视图仅列出当前用户有权访问的项目.
如果您可以以USER2身份登录,则可以将USER_OBJECTS作为该用户进行查询,以查看该用户拥有的所有对象.
如果您可以以SYSTEM身份登录,那么无论所有者如何,您都可以访问所有对象,因此ALL_OBJECTS(或DBA_OBJECTS)提供的列表将完成.
如果您无法以有权访问所有USER2对象的用户身份登录,则无法列出所有USER2的对象.