如何验证用户权限是否已被撤销以在oracle中执行sp

时间:2012-06-08 15:42:25

标签: oracle permissions

我执行以下命令撤消用户执行特定SP的权限:

REVOKE EXECUTE ON SOME.SP_NAME FROM SOME_USER;

我想查询一下是否已成功撤销执行权限。

是否有一些查询会向我显示SOME_USER SOME.SP_NAME上的所有权限,以便我可以直观地验证EXECUTE现在不是其中之一。

1 个答案:

答案 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是受让人