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

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

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

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

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

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

 

posted @ 2018-02-02 18:11  boogieman  阅读(16577)  评论(0编辑  收藏  举报