0

以下のコマンドを実行して、特定のSPを実行するためのユーザーのアクセス許可を取り消します。

REVOKE EXECUTE ON SOME.SP_NAME FROM SOME_USER;

実行権限が正常に取り消されたかどうかを調べるクエリが必要です。

現在の権限の1つではないことを視覚的に確認できるように、すべての権限SOME_USERが設定されていることを示すクエリはありますか。SOME.SP_NAMEEXECUTE

4

1 に答える 1

2
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にアクセスできる場合は、DBA_TAB_PRIVSの方が適している可能性があります。ALL_TAB_PRIVSは以下に制限されています:

ユーザーが付与者、被付与者、所有者、または有効な役割であるか、PUBLICが被付与者であるオブジェクトに対する付与

于 2012-06-08T15:47:48.513 に答える