首先,在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创建存储过程权限问题相关推荐

  1. mysql创建存储过程及函数详解

    文章来源: 学习通http://www.bdgxy.com/ 目录 1. 存储过程 1.1. 基本语法 1.2 创建一个指定执行权限的存储过程 1.3?DELIMITER 的使用 2. 创建函数? 1 ...

  2. MySQL创建存储过程(CREATE PROCEDURE)

    MySQL 存储过程是一些 SQL 语句的集合,比如有的时候我们可能需要一大串的 SQL 语句,或者说在编写 SQL 语句的过程中还需要设置一些变量的值,这个时候我们就完全有必要编写一个存储过程.下面 ...

  3. 2、MySQL创建存储过程(CREATE PROCEDURE)(函数)

    MySQL 存储过程是一些 SQL 语句的集合,比如有时候我们可能需要一大串的 SQL 语句,或者说在编写 SQL 语句的过程中需要设置一些变量的值,这个时候我们就完全有必要编写一个存储过程. 编写存 ...

  4. MySQL——创建存储过程和函数

    简单地说,存储过程就是一条或多条  SQL  语句的集合,可视为批文件,但是其作用不仅限于批处理.存储程序可以分为存储过程和函数.存储过程要用 CALL  语句来调用,并且只能用输出变量返回值. 1. ...

  5. mysql 创建存储过程语法_mysql存储过程语法及实例

    存储过程如同一门程序设计语言,同样包含了数据类型.流程控制.输入和输出和它自己的函数库. --------------------基本语法-------------------- 一.创建存储过程 c ...

  6. linux mysql 创建存储过程_linux系统下无法创建mysql存储过程问题

    创建存储过程的完整命令: CREATE PROCEDURE pro1() begin declare b int default 0; end; mysql中运行存储过程创建语句错误结果: root@ ...

  7. MySQL - 创建存储过程Procedure,Do While实现循环

    处理数据的时候,往往需要回溯历史,比如给用户分群后计算每个群体的用户数趋势,那么就需要计算截止到每一天的各个群体的用户数量,这个时候我们就需要创建存储过程,并且在存储过程中增加循环的功能,以此来实现上 ...

  8. mysql创建存储过程及遍历查询结果,mysql 用存储过程遍历结果集

    mysql 用存储过程遍历结果集 mysql (业务场景:取A表中数据插入B表中) 使用存储过程 以下面两步:sql --建立存储过程优化 DROP PROCEDURE IF EXISTS `proc ...

  9. mysql 创建 存储过程 与执行存储过程 每天零凌晨一点定时执行

    -- 创建存储过程 DELIMITER $ --声明存储过程的结束符 CREATE PROCEDURE Up_bookinfo() --存储过程名称(参数列表) BEGIN --开始DELETE fr ...

最新文章

  1. 安装exchange server 2003服务器
  2. 剑指offer java 博客_Java--剑指offer(10)
  3. 《无人机DIY》——4.2 项目1:MakerBeam机身
  4. SAP CM: cl_crm_oi_docx_transform_rt=indicate_tree
  5. vscode python环境配置_用VScode配置Python开发环境
  6. Python如何创建相同值的数组/列表
  7. Python3网络爬虫开发实战分析Ajax爬取今日头条街拍美图
  8. 前沿 | VLDB 2019论文解读:阿里巴巴大规模数据库智能参数优化的创新与实践
  9. 数据库三范式,轻松理解
  10. html定义盒子距离顶底端像素,css - 盒子内外边距
  11. sql server 按年月日分组
  12. 解码H264视频出现花屏或马赛克的问题
  13. ARM嵌入式开发,高通MSM8937核心板h
  14. 密码学--CTF Crypto
  15. 天地图key申请_国家地理信息公共服务平台 天地图
  16. 国内能用的国际邮箱推荐哪个?公司邮箱号码大全
  17. 计算机硬盘解密,如何解除电脑硬盘密码 解除电脑硬盘密码方法【详解】
  18. STM32定时器实现100毫秒保存一次数据到SD卡
  19. 泰坦尼克号python数据预处理_sklearn preprocessing 数据预处理(OneHotEncoder)
  20. 《计算机世界》抛出了‘板砖’;引出了业界的‘美玉’

热门文章

  1. mongodb不等于某个值_MongoDb进阶实践之四 MongoDB查询命令详述
  2. java 小数精确_Java中小数精确计算
  3. mysql5.7主从搭建
  4. Jvm 系列(七):Jvm 调优-工具篇
  5. [Spring mvc 深度解析(一)] 详解Servlet
  6. maven多项目打包报错---子模块相互依赖打包时所遇到的问题:依赖的程序包找不到 package xxx does not exist
  7. 为了撩妹用Python做了一个办公小工具,她说棒极了
  8. Python面向对象编程:类继承和其衍生术语
  9. Python面对对象编程——公有与私有
  10. charles 代理手机连不上网_手机连不上网?四种方法教你如何解决,建议收藏以备不时之需...