【问题标题】:how to verify whether a users permissions have been revoked to execute a sp in oracle如何验证用户权限是否已被撤销以在oracle中执行sp
【发布时间】:2012-06-09 00:05:07
【问题描述】:

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

REVOKE EXECUTE ON SOME.SP_NAME FROM SOME_USER;

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

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

【问题讨论】:

标签: oracle permissions


【解决方案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 是被授予者

【讨论】:

  • 我试过了,但是all_tab_privs 中甚至没有我的 SP :(
  • 是否有任何用户对您的存储过程有权限?
猜你喜欢
  • 2021-03-03
  • 1970-01-01
  • 1970-01-01
  • 2018-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多