zoukankan      html  css  js  c++  java
  • 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权限给某个用户,就可以实现只授予用户查看存储过程定义的权限,而限制用户修改、执行存储过程。从而达到只授权用户查看存储过程定义的权限。

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

  • 相关阅读:
    数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案
    数据库分库分表(sharding)系列(三) 关于使用框架还是自主开发以及sharding实现层面的考量
    docker的入门简介
    nginx方向代理详解及配置
    nginx配置文件详解
    nginx安装
    iptables防火墙
    服务器加载过程
    服务器
    操作系统
  • 原文地址:https://www.cnblogs.com/guipeng/p/7027382.html
Copyright © 2011-2022 走看看