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权限给某个用户,就可以实现只授予用户查看存储过程定义的权限,而限制用户修改、执行存储过程。从而达到只授权用户查看存储过程定义的权限。
不用纠结包和包体,只要赋予相关存储过程权限,包和包体都有相关的权限
Oracle-分配用户只读存储过程权限的更多相关文章
- 使用PLSQL 创建Oracle数据库用户并设置权限
转至https://blog.csdn.net/ying890/article/details/14083029?utm_medium=distribute.pc_relevant_download. ...
- oracle创建用户、授予权限及删除用户
创建用户 oracle对表空间 USERS 无权限 alter user 用户名 quota unlimited on users; //创建临时表空间 create temporary ta ...
- Oracle 新建用户、赋予权限
1.新建用户 新建用户: create User username Identified by password 修改用户密码: alter User username Identified by p ...
- Oracle 一个用户将表权限赋给另一个用户
原文地址:https://blog.csdn.net/u012129031/article/details/76218764 1.将用户user1的表权限赋给用户user2 select 'gra ...
- Oracle同义词创建及分配用户创建同义词权限
(1)--授权某个用户crate synonym的权限,若用户名为scott grant create synonym to scott(2)--创建同义词 create [or replace] s ...
- 删除oracle数据库用户的dba权限(当出现同一用户DBA可以登录,normal不能登录)“无法对SYS拥有的对象创建触发器”
系统报错:“无法对SYS拥有的对象创建触发器”,搞不懂是什么原因了,到底这触发器要用什么用户才能建立啊? ORA-04089: 无法对 SYS 拥有的对象创建触发器 第一种方式: 首先,用sys用户a ...
- Oracle创建用户并赋予权限
1 CREATE USER username IDENTIFIED BY password; --这个是创建用户(这是最简单的创建语句没有指定表空间) 1 GRANT CREATE SESSION T ...
- oracle给用户授权存储过程
https://www.jianshu.com/p/fab356d68ae2 grant connect,resource to xinomonitor; 发现不能进行断点调试,然后授如下权限 gra ...
- oracle查看用户有哪些权限和角色
select * from dba_sys_privs t where t.grantee='HR';select * from dba_role_privs t where t.grantee='H ...
随机推荐
- mybatis使用的一点小结:session运行模式及批量提交(转)
mybatis的执行器有三种类型: ExecutorType.SIMPLE 这个类型不做特殊的事情,它只为每个语句创建一个PreparedStatement. ExecutorType.REUSE 这 ...
- Nginx与PHP如何协同工作
要说Nginx与PHP如何协同工作,首先得说CGI和FastCGI两个协议. CGI是Web Server与后台语言交互的协议,有了这个协议,开发者可以使用任何语言处理Web Server发来的请求, ...
- centos7下apache启动报错记录
http重启httpd发生错误,后面按照提示执行systemctl status httpd.service命令 按照提示,继续执行journalctl -xe 这里显示了详细的错误信息,并且给出了解 ...
- G1 垃圾收集器之对象分配过程
G1的年轻代由eden region 和 survivor region 两部分组成,新建的对象(除了巨型对象)大部分都在eden region中分配内存,如果分配失败,说明eden region已经 ...
- SpringBoot在macOS下启动慢的原因
title: SpringBoot在macOS下启动慢的原因 comments: false date: 2019-07-16 09:48:24 description: 在 macOS + JDk1 ...
- python编码环境安装与基本语法
一.pycharm的基本使用 1.python以及pycharm的安装 python的版本选择:3.x版本就行 pycharm的版本选择:社区版就够用 pycharm只是一个编写工具,python才是 ...
- scp 自动带密码参数复制文件到主机
一.安装sshpass工具 [root@zabbix_server scripts]# yum install sshpass 二.运行 [root@zabbix_server scripts]# s ...
- keepalived启动后报错:(VI_1): received an invalid passwd!的解决办法
一.配置好keepalived.conf文件后,启动keepalived,查看/var/log/message日志报错: [root@push-- sbin]# tail -f /var/log/me ...
- 如何检测指定的Windows服务是否启动
在项目中,特别是安装项目中我们经常要判断一些服务是否启动(判断SQL Server是否启动最常见),在.net中我们如何判断指定的Windows服务是否启动呢?首先要知道Windows服务的显示名称, ...
- 微信获取token -1000
最终翻看微信开发api找到需要去配置IP白名单.只需要配置访问来源IP即可.