修改mysql的definer定义者、方法定义者、时间定义者、视图定义者

这篇文章介绍了如何查询和修改MySQL数据库中的function、procedure、event以及view的definer权限。通过SQL命令,用户可以更新这些对象的定义者,以适应不同的安全策略和访问控制需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 修改function、procedure的definer

select definer from mysql.proc;--函数、存储过程
update mysql.proc set definer=fuser@localhost;--如果有限定库或其它可以加上where条件

修改event的definer

select DEFINER from mysql.EVENT;--定时事件
update mysql.EVENT set definer= 'root'@'localhost';

修改view的definer 

select concat("alter DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `",TABLE_SCHEMA,"`.",TABLE_NAME," as ",VIEW_DEFINITION,";") from information_schema.VIEWS where DEFINER = 'old@%';