关于mysql存储过程的definer的问题
来源:互联网 发布:电脑桌面没有网络图标 编辑:程序博客网 时间:2024/05/13 15:10
Track: http://yunjiechao-163-com.iteye.com/blog/1300772
由于对mysql了解不够透彻,导致对definer问题查了好久才解决问题
记录自己的一些理解!
问题描述:
在数据库写,为一个表写了一个触发器,此触发器调用一个存储过程;由公司写的一个c程序自动往该表写入数据,通过触发器转换成业务相关数据;同过root@localhost连接数据库,但提示192.168.2.%不存在
问题查找:
登录数据库,show procedure status\G 发现procedure的definer都是root@192.168.2.%
问题解决:
方法一:修改存储过程的definer
update mysql.proc set definer='root@localhost' where db='db_name';
方法二:修改sql security
sql secuirty的值决定了调用存储过程的方式,取值 :definer或者invoker
definer:在执行存储过程前验证definer对应的用户如:root@192.168.2.%是否存在,以及是否具有执行存储过程的权限,若没有则报错
invoker:在执行存储过程时判断inovker即调用该存储过程的用户是否有相应权限,若没有则报错。
修改语法:
alter procedure pro_name sql security invoker;
ps: 在创建时指定sql security
create procedure pro_name(params....)
sql security definer|invoker
begin
.....
end;
- 关于mysql存储过程的definer的问题1
- 关于mysql存储过程的definer的问题
- 关于mysql存储过程的definer的问题
- 关于mysql存储过程的definer的问题
- 关于mysql存储过程的definer的问题
- 关于mysql存储过程的definer的问题
- (原)mysql存储过程的权限 definer invoker
- 修改MySQL存储过程、函数、事件、触发器、视图的DEFINER
- 修改MySQL存储过程、函数、事件、触发器、视图的DEFINER
- 修改MySQL存储过程、函数、事件、触发器、视图的DEFINER
- mysql 存储过程的权限问题 java.sql.SQLException: The user specified as a definer ('xxxx'@'%') does not exist
- 修改MySql的存储过程、函数、事件、触发器、视图的 DEFINER
- MySQL 授权用户 ; 存储过程的DEFINER; 命令分隔符DELIMITER
- MySQL 授权用户 ; 存储过程的DEFINER; 命令分隔符DELIMITER
- 如何实现对多台mysql实例的存储过程definer进行批量修改
- MySQL修改存储过程和函数、事件、触发器、视图的DEFINER
- 关于MySQL的存储过程
- 存储过程中-definer和invoker的解释
- Android之 AsyncTask
- PCL读取与保存点云文件
- 解决HttpClient交付json格式请求的中文支持
- Android Voip开源客户端比较
- android 获取控件在屏幕里的坐标
- 关于mysql存储过程的definer的问题
- Lua基础教程
- ExtJS4学习笔记七--事件绑定相关
- Mac OS X 下配置 GTK 开发环境(Homebrew)
- APCI ASL
- Android ContentProvider和Uri详解
- byte和byte数组
- 二手房政策(by quqi99)
- 用boost库条件变量实现后进先出型缓冲区的生产者消费者模型