我执行以下命令撤消用户执行特定SP的权限:
REVOKE EXECUTE ON SOME.SP_NAME FROM SOME_USER;
我想查询一下是否已成功撤销执行权限。
是否有一些查询会向我显示SOME_USER
SOME.SP_NAME
上的所有权限,以便我可以直观地验证EXECUTE
现在不是其中之一。
答案 0 :(得分:1)
select * from all_tab_privs where grantee = 'SOME_USER' and table_name = 'SP_NAME' and table_schema = 'SOME'
编辑:
ALL_TAB_PRIVS工作正常。这是我自己的会议:
SQL> create procedure myproc is begin null; end;
2 /
Procedure created.
SQL> grant execute on myproc to x11414;
Grant succeeded.
SQL> select * from all_tab_privs where table_name = 'MYPROC';
GRANTOR GRANTEE
------------------------------ ------------------------------
TABLE_SCHEMA TABLE_NAME
------------------------------ ------------------------------
PRIVILEGE GRA HIE
---------------------------------------- --- ---
W13582 X11414
W13582 MYPROC
EXECUTE NO NO
SQL> revoke execute on myproc from x11414;
Revoke succeeded.
SQL> select * from all_tab_privs where table_name = 'MYPROC';
no rows selected
编辑#2:如果您有权访问DBA_TAB_PRIVS可能会更好。 ALL_TAB_PRIVS仅限于:
授予用户为授予者,受让人,所有者, 或已启用的角色或PUBLIC是受让人