分享

如何查询某个用户下能执行哪些存储过程?

 nanatsg 2018-03-22


B: dba_tab_privs可以看到的

A: 好像这个视图只能查询用户拥有的表权限啊

B: 你授权过了,table_name就是包、过程的名称


究竟是不是这样?


首先,说明一下,用dba_tab_privs和user_tab_privs这两个都是可以的,和一般的dba_/user_视图适用范围相同,


DBA_TAB_PRIVS describes all object grants in the database.

USER_TAB_PRIVS describes the object grants for which the current user is the object owner, grantor, or grantee.


场景1. 用户属主的存储过程,授权给自己

用户BISAL下创建存储过程,授权自己,

SQL> create or replace procedure p AS
          BEGIN
          dbms_output.put_line('procedure');
          END;
          /
Procedure created.


SQL> grant execute on p to bisal;
Grant succeeded.


此时user_tab_privs视图为空,可以理解为对象就是自己的,没必要进行授权,反过来看,不能将对象权限,从属主身上删除,

SQL> select table_name from user_tab_privs;
no rows selected


场景2. 用户属主的存储过程,授权给其他用户

用户STAR下创建存储过程,授权给用户BISAL,

SQL> create or replace procedure ap AS
          BEGIN
          dbms_output.put_line('procedure');
          END;
          /
Procedure created.


SQL> grant execute on ap to bisal;
Grant succeeded.


BISAL用户下检索user_tab_privs视图,有了记录,表明用户STAR(GRANTOR)的AP对象,授权用户BISAL(GRANTEE),可有执行权限(EXECUTE),


其实使用STAR,检索是相同的,换句话说,虽然用的USER_视图,但是对于BISAL用户,GRANTEE,被授予了存储过程AP执行权限,对于STAR用户来说,GRANTOR,授予了存储过程AP执行权限,属于object grants in the database范畴,(EXECUTE可以drop procedure)

DBA_TAB_PRIVS describes all object grants in the database.

USER_TAB_PRIVS describes the object grants for which the current user is the object owner, grantor, or grantee.


“all object”表示不仅可以检索存储过程,可以检索其他的对象,除了存储过程,我们看看授予表对象权限,

BISAL用户下有一张表A,授予SELECT权限给用户STAR,

SQL> grant select on a to star;
Grant succeeded.


无论使用BISAL,还是STAR用户,均可以进行检索,


授予所有权限,

SQL> grant select on a to star;
Grant succeeded.


检索user_tab_privs视图,


细心的朋友可能已经发现,*_tab_privs显示的结果中,没有指出对象的类型,比如我这么操作,

SQL> rename a to ap;
Table renamed.


检索user_tab_privs,可以看见这里TABLE_NAME,两个都是AP,无法区分是什么类型的对象,


上面是版本11.2.0.4显示,但是看12c以及18c文档,针对这张视图,已经增加了type类型,


12c手册,


18c手册,        


这是Live SQL显示的检索,即18c下的检索显示,


Oracle已经意识到11g中*_tab_privs视图需要type,于是在新版本中,增加了这个字段信息,现在看着就方便了些。



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多