暂无图片
MySQL 8.0.31 怎么修改特定数据库下地function的definer?
我来答
分享
暂无图片 匿名用户
MySQL 8.0.31 怎么修改特定数据库下地function的definer?

MySQL 8.0.31 怎么修改特定数据库下地function的definer?

我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
游湖
update mysql.proc set definer=.....这个应该还可以用吧
暂无图片 评论
暂无图片 有用 3
手机用户5704

学习

暂无图片 评论
暂无图片 有用 1
shunwahⓂ️

mysql修改definer方法
– 函数、存储过程
– 定时事件
– 视图
–触发器

修改方法:
1、利用“update mysql.proc set definer=…”修改function的definer;
2、利用“update mysql.EVENT set definer=…”修改event的definer。

1.修改function、procedure的definer

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

2.修改event的definer

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

3.修改view的definer
相比function的修改麻烦点:

select DEFINER from information_schema.VIEWS;
select concat("alter DEFINER=`user`@`localhost` SQL SECURITY DEFINER VIEW ",TABLE_SCHEMA,".",TABLE_NAME," as ",VIEW_DEFINITION,";") from information_schema.VIEWS where DEFINER<>‘user@localhost‘;

查询出来的语句再执行一遍就好了。
4.修改trigger的definer --触发器

select DEFINER from information_schema.TRIGGERS;

https://www.bbsmax.com/A/QV5ZEGqwJy/

暂无图片 评论
暂无图片 有用 0
张sir

学习

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏