MySQL 存储过程 函数 routine 权限
MySQL 存储过程 函数 routine 权限
Table of Contents
1 mysql存储过程/函数权限
Mysql 某个用户在执行存储过程、函数时,需要检查相关对象的操作权限,比如是否有执行 该函数的权限 ,某个用户是否操作(DML)相关对象的权限 。
在创建存储过程或者函数时,有一个关键词,sql_security, 该关键词决定了对哪个用户进行权限检查。下面是创建存储过程或者函数的语法:
delimiter // -- 声明分隔符(命令结束符) create definer = user@hostname | current_user [procedure| function] 对象名(参数) comment '注释' sql security definer | invoker -- sql 的安全设置 begin body end // delimiter ; -- 声明分隔符(命令结束符)
1.1 相关对象操作权限检查
sql_security 主要 是检查调用 者或者definer指定的用户,有没有操作相关对象的权限 。 该选项有两种值可选,一个是definer,一个是invoker.
DEFINER
definer 检查指定的用户, 创建存储过程时可以省略掉。省略时,默认DEFINER=CURRENT_USER.
sql security 设置为definer时,则数据库根据definer 是否有操作相应对象的权限 。
INVOKER
检查调用存储过程/函数的用户是否有操作相应对象的处理权限 。
1.2 执行权限
Mysql可以(取消)授权给指定用户去执行某个存储过程或者函数等。
授权给指定用户
grant execute on <schema>.<procedure_name> to 'user'@'host';
取消授权
revoke execute on <schema>.<procedure_name> from 'user'@'host';
MySQL 存储过程 函数 routine 权限的更多相关文章
- mysql 存储过程 函数 触发器
mysql存储过程与函数 存储过程下载 demo mysql> delimiter // -- 这里//为修改默认分隔符: mysql> CREATE PROCEDURE simplep ...
- Paip.断点调试MYSQL存储过程跟函数的解决方案大法
Paip.断点调试MYSQL存储过程跟函数的解决方案大法 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn ...
- mysql使用存储过程&函数实现批量插入
写这边文章的目的,是想结合mysql 存储过程+函数完成一个批量删除的功能吧...正好也好加深下对procedure和function的熟练操作吧...废话不多说,我就直接上表结构啦哈,如下: cre ...
- Mysql 存储过程、函数、触发器和视图的权限检查
当存储过程.函数.触发器和视图创建后,不单单创建者要执行,其它用户也可能需要执行,换句话说,执行者有可能不是创建者本身,那么在执行存储过程时,MySQL是如何做权限检查的? 在默认情况下,MySQL将 ...
- MySQL创建存储过程/函数需要的权限
alter routine---修改与删除存储过程/函数 create routine--创建存储过程/函数 execute--调用存储过程/函数 下面有一篇介绍MySQL所有权限的博文 http:/ ...
- 12.Mysql存储过程和函数
12.存储过程和函数12.1 什么是存储过程和函数存储过程和函数是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程和函数简化应用开发人员的工作,减少数据在数据库和应用服务器之间的传输, ...
- 从MySQL到ORM(三):连接、存储过程和用户权限
一.联结表 数据仍使用前文中的数据. 1.子查询 作为子查询的SELECT语句只能查询单个列.企图检索多个列将返回错误. -- 作为查询条件使用 -- 查看TNT2订单对应的客户ip(order表) ...
- mysql存储过程和函数(一)
存储过程和函数是事先经过编译并存储在数据库的一段sql语句集合,调用存储过程和函数可以简化应用程序开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对提高数据运行效率是有好处的. 存储过程和 ...
- 12 MySQL存储过程与函数
存储过程和函数 存储过程和函数是事先经过编译并存储在数据库中的一段SQL语句的集合. 调用存储过程和函数可以简化应用开发人员的工作,减少数据在数据库和应用服务器之间的传输,提高数据处理 ...
随机推荐
- CentOS7安装node环境
1 找到官网复制链接地址 2 再自己Linux的按照路径,wget下载软件包并解压 wget https://nodejs.org/dist/v10.16.1/node-v10.16.1-linux- ...
- ubuntu安装软件apt-get
一. apt-get用法 apt 0.8.16~exp12ubuntu10.26 for i386 compiled on Aug 5 2015 19:06:21Usage: apt-get [op ...
- 1.Bacula各组件说明
1. Bacula各组件说明 Baula有三个服务,分别是bacula-sd用于管理storage.bacula-fd为bacula客户端.bacula-dir为bacula的核心组件机direct ...
- (七)make menuconfig
1.make menuconfig进入图形界面后,输入 / 进行查找页面,如果输入有错,要删除前面输入的可以输入 ctrl加<--键(ctrl加回退按键)
- java-Freemarker-模板引擎学习
博客:Java模板引擎性能对比 Thymeleaf性能偏低. 博客:Java模板引擎 FreeMarker 综合性的介绍,内容有点粗糙. 博客:JavaEE进阶——FreeMarker模板引擎 ...
- 理解JavaScript里的 [].forEach.call() 写法
原文: http://www.webhek.com/javascript-foreach-call document.querySelectorAll() 返回的并不是我们想当然的数组,而是 Nod ...
- C++——函数
C++基础函数 (一)函数的参数传递 在没有调用函数之前,函数的形参并没有占据实际的空间. 1.值传递 传入的仅仅只是一个值--就是把实参的值赋给形参.形参自己会在内存中开辟一个空间! 2.传引用 这 ...
- linux TAILQ_ENTRY
#include <sys/queue.h> TAILQ_ENTRY 队列 http://www.360doc.com/content/15/1222/14/29292169_522271 ...
- JS 获取和返填单选按钮Value值
1.获取Radio值 $('input[name="sex"]:checked ').val(); 2.返填Radio值 $('input[name="sex" ...
- 重装maven
重装原因:换旧版本! 一.直接删除maven文件夹 二.直接删除本地仓库文件 三.删除之前相关的项目(不是必须) 四.下载一个新的,网址 https://maven.apache.org/downlo ...