mysql创建存储过程权限问题
首先,在mysql存储过程出现的同时,用户权限也增加了5种,其中和存储过程有关的权限有 三种: ALTER ROUTINE 编辑或删除存储过程 CREATE ROUTINE 建立存储过程 EXECUTE 运行存储过程在使用GRANT创建用户的时候分配这三种权限。 存储过程在运行的时候默认是使用建立者的权限运行的。 需要注意的是在一个用户拥有建立存储过程的权限时,如果其没有对于select、update或delete等权限的话,虽然操作数据的存储过程可以建立,但调用存储过程的话仍是无法成功的,会返回权限错误,就算拥有运行存储过程的权限也一样。所以,如果有人给你建立了一个没有select、update、delete权限只有CREATE ROUTINE权限的用户,骂他吧,他是故意的。 当然这样的用户建立的存储过程倒并不是完全不能使用,创建存储过程中有一个特征子句可以让存储过程使用运行者的权限,在建立存储过程后只要加上SQL SECURITY INVOKER特征子句就可以了。如下。 CREATE PROCEDURE p() SQL SECURITY INVOKER 这样的话就可以分配两批人,一批给与创建存储过程的权限,作为开发者,一批给与运行存储过程和select、update、delete权限,作为测试者。(脑筋秀逗了) 有了这种权限分配,mysql的安全性完全不需要在功能层去保护了,我通过root用户建立的存储过程,但是在功能层用一个只拥有运行存储过程权限的用户来调用。那么,你就算从功能层上得到数据库的用户名和密码,并且模拟了ip,也不能得到你想要的任何东西。 有了权限,我们可以放心大胆的使用存储过程,不用担心安全问题了。
mysql创建存储过程权限问题相关推荐
- mysql创建存储过程及函数详解
文章来源: 学习通http://www.bdgxy.com/ 目录 1. 存储过程 1.1. 基本语法 1.2 创建一个指定执行权限的存储过程 1.3?DELIMITER 的使用 2. 创建函数? 1 ...
- MySQL创建存储过程(CREATE PROCEDURE)
MySQL 存储过程是一些 SQL 语句的集合,比如有的时候我们可能需要一大串的 SQL 语句,或者说在编写 SQL 语句的过程中还需要设置一些变量的值,这个时候我们就完全有必要编写一个存储过程.下面 ...
- 2、MySQL创建存储过程(CREATE PROCEDURE)(函数)
MySQL 存储过程是一些 SQL 语句的集合,比如有时候我们可能需要一大串的 SQL 语句,或者说在编写 SQL 语句的过程中需要设置一些变量的值,这个时候我们就完全有必要编写一个存储过程. 编写存 ...
- MySQL——创建存储过程和函数
简单地说,存储过程就是一条或多条 SQL 语句的集合,可视为批文件,但是其作用不仅限于批处理.存储程序可以分为存储过程和函数.存储过程要用 CALL 语句来调用,并且只能用输出变量返回值. 1. ...
- mysql 创建存储过程语法_mysql存储过程语法及实例
存储过程如同一门程序设计语言,同样包含了数据类型.流程控制.输入和输出和它自己的函数库. --------------------基本语法-------------------- 一.创建存储过程 c ...
- linux mysql 创建存储过程_linux系统下无法创建mysql存储过程问题
创建存储过程的完整命令: CREATE PROCEDURE pro1() begin declare b int default 0; end; mysql中运行存储过程创建语句错误结果: root@ ...
- MySQL - 创建存储过程Procedure,Do While实现循环
处理数据的时候,往往需要回溯历史,比如给用户分群后计算每个群体的用户数趋势,那么就需要计算截止到每一天的各个群体的用户数量,这个时候我们就需要创建存储过程,并且在存储过程中增加循环的功能,以此来实现上 ...
- mysql创建存储过程及遍历查询结果,mysql 用存储过程遍历结果集
mysql 用存储过程遍历结果集 mysql (业务场景:取A表中数据插入B表中) 使用存储过程 以下面两步:sql --建立存储过程优化 DROP PROCEDURE IF EXISTS `proc ...
- mysql 创建 存储过程 与执行存储过程 每天零凌晨一点定时执行
-- 创建存储过程 DELIMITER $ --声明存储过程的结束符 CREATE PROCEDURE Up_bookinfo() --存储过程名称(参数列表) BEGIN --开始DELETE fr ...
最新文章
- 安装exchange server 2003服务器
- 剑指offer java 博客_Java--剑指offer(10)
- 《无人机DIY》——4.2 项目1:MakerBeam机身
- SAP CM: cl_crm_oi_docx_transform_rt=indicate_tree
- vscode python环境配置_用VScode配置Python开发环境
- Python如何创建相同值的数组/列表
- Python3网络爬虫开发实战分析Ajax爬取今日头条街拍美图
- 前沿 | VLDB 2019论文解读:阿里巴巴大规模数据库智能参数优化的创新与实践
- 数据库三范式,轻松理解
- html定义盒子距离顶底端像素,css - 盒子内外边距
- sql server 按年月日分组
- 解码H264视频出现花屏或马赛克的问题
- ARM嵌入式开发,高通MSM8937核心板h
- 密码学--CTF Crypto
- 天地图key申请_国家地理信息公共服务平台 天地图
- 国内能用的国际邮箱推荐哪个?公司邮箱号码大全
- 计算机硬盘解密,如何解除电脑硬盘密码 解除电脑硬盘密码方法【详解】
- STM32定时器实现100毫秒保存一次数据到SD卡
- 泰坦尼克号python数据预处理_sklearn preprocessing 数据预处理(OneHotEncoder)
- 《计算机世界》抛出了‘板砖’;引出了业界的‘美玉’
热门文章
- mongodb不等于某个值_MongoDb进阶实践之四 MongoDB查询命令详述
- java 小数精确_Java中小数精确计算
- mysql5.7主从搭建
- Jvm 系列(七):Jvm 调优-工具篇
- [Spring mvc 深度解析(一)] 详解Servlet
- maven多项目打包报错---子模块相互依赖打包时所遇到的问题:依赖的程序包找不到 package xxx does not exist
- 为了撩妹用Python做了一个办公小工具,她说棒极了
- Python面向对象编程:类继承和其衍生术语
- Python面对对象编程——公有与私有
- charles 代理手机连不上网_手机连不上网?四种方法教你如何解决,建议收藏以备不时之需...