Oracle-分配用户只读存储过程权限

系统新来了系统运维人员,要求创建数据库账号,只分配对表,视图,存储程序有只读权限

因为表和视图权限接触比较频繁,所以今天花点时间整理下关于存储过程的权限

关于ORACLE账号的权限问题,一般分为两种权限:

          

      系统权限: 允许用户执行特定的数据库动作,如创建表、创建索引、创建存储过程等

      对象权限: 允许用户操纵一些特定的对象,如读取视图,可更新某些列、执行存储过程等

像这种查看存储过程定义的权限为对象权限,但是我们还是首先来看看关于存储过程的系统权限吧:

 

上图所示关于存储过程的系统权限一共有六种:

CREATE PROCEDURE、创建存储程序

CREATE ANY PROCEDURE、 创建任何存储程序

ALTER ANY PROCEDURE、更改任何存储程序

DROP ANY PROCEDURE、删除任何存储程序

EXECUTE ANY PROCEDURE、执行任何存储程序

DEBUG ANY PROCEDURE.查看定义任何存储程序

做个试验验证下存储过程的对象权限

将STG用户下的存储程序FP_SO的权限赋给新建用户ZMM,ZMM初始赋给的权限有connect和resource

从上图所示:存储程序的对象全乡有EXECUTE和DEBUG两种:

试着将所有的权限回收,然后单独赋予ZMMexecute和debug权限

1,REVOKE ALL ON FP_SO FROM ZMM;

     GRANT EXECUTE ON FP_SO TO ZMM;

2,REVOKE ALL ON FP_SO FROM ZMM;

    GRANT EXECUTE ON FP_SO TO ZMM;

经验证,execute有查看和执行的权限

           debug只有查看的权限

所以,只需要授予存储过程的DEBUG权限给某个用户,就可以实现只授予用户查看存储过程定义的权限,而限制用户修改、执行存储过程。从而达到只授权用户查看存储过程定义的权限。

不用纠结包和包体,只要赋予相关存储过程权限,包和包体都有相关的权限

 

转载于:https://www.cnblogs.com/guipeng/p/7027382.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值