MySQL中的定义者(definer)的作用

Posted boogieman

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL中的定义者(definer)的作用相关的知识,希望对你有一定的参考价值。

现象:在数据库迁移之后,调用函数报错,提示definer不存在。

查了一下,发现函数和存储过程之类的,本身调用是不存在权限这个概念的。

definer这个值并不会限制函数和存储过程被调用的权限,但会限制函数和存储过程访问数据库的权限。

函数和存储过程在访问数据库时,会获取definer用户对应的数据库访问权限。

因为在迁库后,definer值没有修改,原数据库的用户在新库中不存在,所以报错,修改一下definer值就可以了

 

以上是关于MySQL中的定义者(definer)的作用的主要内容,如果未能解决你的问题,请参考以下文章

define定义变量

#ifndef, #define, #endif 作用

#ifndef, #define, #endif的作用

C语言 预处理二(宏定义--#define)

MYSQL,为 date|datetime 插入创建了一个用户定义的函数,但它不起作用

#define宏作用