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

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

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

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

Oracle-分配用户只读存储过程权限的更多相关文章

  1. 使用PLSQL 创建Oracle数据库用户并设置权限

    转至https://blog.csdn.net/ying890/article/details/14083029?utm_medium=distribute.pc_relevant_download. ...

  2. oracle创建用户、授予权限及删除用户

    创建用户   oracle对表空间 USERS 无权限 alter user 用户名 quota unlimited on users;   //创建临时表空间 create temporary ta ...

  3. Oracle 新建用户、赋予权限

    1.新建用户 新建用户: create User username Identified by password 修改用户密码: alter User username Identified by p ...

  4. Oracle 一个用户将表权限赋给另一个用户

    原文地址:https://blog.csdn.net/u012129031/article/details/76218764 1.将用户user1的表权限赋给用户user2 select   'gra ...

  5. Oracle同义词创建及分配用户创建同义词权限

    (1)--授权某个用户crate synonym的权限,若用户名为scott grant create synonym to scott(2)--创建同义词 create [or replace] s ...

  6. 删除oracle数据库用户的dba权限(当出现同一用户DBA可以登录,normal不能登录)“无法对SYS拥有的对象创建触发器”

    系统报错:“无法对SYS拥有的对象创建触发器”,搞不懂是什么原因了,到底这触发器要用什么用户才能建立啊? ORA-04089: 无法对 SYS 拥有的对象创建触发器 第一种方式: 首先,用sys用户a ...

  7. Oracle创建用户并赋予权限

    1 CREATE USER username IDENTIFIED BY password; --这个是创建用户(这是最简单的创建语句没有指定表空间) 1 GRANT CREATE SESSION T ...

  8. oracle给用户授权存储过程

    https://www.jianshu.com/p/fab356d68ae2 grant connect,resource to xinomonitor; 发现不能进行断点调试,然后授如下权限 gra ...

  9. oracle查看用户有哪些权限和角色

    select * from dba_sys_privs t where t.grantee='HR';select * from dba_role_privs t where t.grantee='H ...

随机推荐

  1. python-day17(正式学习)

    目录 包 一.什么是包? 二.为什么要有包? 三.如何用包? 3.1 模块和包 3.2 扩展模块功能 3.3 修改__init__.py文件 绝对导入和相对导入 注意事项 模块不来总结了,直接去htt ...

  2. 初相识|performance_schema全方位介绍

    初相识|performance_schema全方位介绍 |导 语 很久之前,当我还在尝试着系统地学习performance_schema的时候,通过在网上各种搜索资料进行学习,但很遗憾,学习的效果并不 ...

  3. Exchange 2010 详细安装步骤

    工具/原料   系统要求:windows 2008 R2 标准版或者企业版 Exchange Server 2010 SP3:https://www.microsoft.com/en-us/downl ...

  4. ReactNative: Android与iOS平台兼容处理

    方法一: 创建不同的文件扩展名:*.android.js*.io.js 方法二: import { Platform } from 'react-native'; if (Platform.OS == ...

  5. java复习(2)

    1.函数的重载:在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不相同就可以. 重载与返回值类型无关,只看参数列表.重载方便阅读,优化了程序的设计 eg://返回两个 整数值的 ...

  6. js,el表达式,<c:if>

    <c:if>中只能有一个判断语句,但是可以在一个el表达式中写多个判断条件 例: <c:if test="${fn:length(item.work_detail.note ...

  7. view视图总结

    视图实质上存储的是一段sql. 创建方式: 1.create view  视图名 as  子查询语句   , 特点:与主表数据同步,对当前视图进行修改,会同时将根表一并修改.  2.create or ...

  8. 从标准输入读取一行数组并保存(用的是字符串分割函数strtok_s() )

    首先介绍字符串分割函数: char *strtok_s( char *strToken, //字符串包含一个标记或一个以上的标记. const char *strDelimit, //分隔符的设置 c ...

  9. Access数据库删除重复记录,只保留一条记录的做法

    Access数据库删除重复记录,只保留一条记录的做法: 只保留id最小的记录方法: delete from [表名] where id not in (select min(id) from [表名] ...

  10. 基于vue模块化开发后台系统——准备工作

    文章目录如下:项目效果预览地址项目开源代码基于vue模块化开发后台系统--准备工作基于vue模块化开发后台系统--构建项目基于vue模块化开发后台系统--权限控制 前言 本文章是以学习为主,练习一下v ...