我可以运行什么查询来简单查看用户是否有权执行存储过程。oracle查询以查找存储过程的优势
可以说用户UserA
和存储过程的名称是my_stored_proc
我想知道UserA
是否对my_stored_proc
用户A执行权限是不storedproc的所有者。其他一些所有者授予他许可。
我可以运行什么查询来简单查看用户是否有权执行存储过程。oracle查询以查找存储过程的优势
可以说用户UserA
和存储过程的名称是my_stored_proc
我想知道UserA
是否对my_stored_proc
用户A执行权限是不storedproc的所有者。其他一些所有者授予他许可。
要通过角色占助学金:
select grantee, table_name, privilege
from dba_tab_privs
where
table_name = 'my_stored_proc'
and
owner = 'ownerOfObject'
and
(grantee = 'userA'
or
grantee in
(select granted_role
from dba_role_privs
where grantee = 'userA'
)
)
你可以尝试
select ap.*
from All_Procedures ap
where ap.owner = 'UserA'
这只是告诉你,如果用户A是所有者。即使不是所有者,我想UserA仍然可以获得许可。不知道如何检查。
编辑: 其他表检查的
USER_SYS_PRIVS USER_TAB_PRIVS USER_ROLE_PRIVS ROLE_SYS_PRIVS ROLE_TAB_PRIVS
我很少质疑这些,所以我不完全知道如何找到你要找的东西,但我会用这些启动。
明白了...
SELECT * FROM DBA_TAB_PRIVS A WHERE GRANTEE = 'UserA' AND GRANTOR = 'someoneelse' and privilege = 'EXECUTE'
好,除非拨款通过角色 – dpbradley 2010-01-28 18:39:53
耶那我的情况。他不是主人。一些所有者授予他许可。 – Omnipresent 2010-01-28 18:21:22