我执行以下命令来撤销用户执行特定 SP 的权限:
REVOKE EXECUTE ON SOME.SP_NAME FROM SOME_USER;
我想查询一下执行权限是否被成功撤销。
是否有一些查询会向我显示所有权限SOME_USER
,SOME.SP_NAME
以便我现在可以直观地验证这EXECUTE
不是其中之一。
我执行以下命令来撤销用户执行特定 SP 的权限:
REVOKE EXECUTE ON SOME.SP_NAME FROM SOME_USER;
我想查询一下执行权限是否被成功撤销。
是否有一些查询会向我显示所有权限SOME_USER
,SOME.SP_NAME
以便我现在可以直观地验证这EXECUTE
不是其中之一。
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 是被授予者的对象