首页 > 分享 > 关于mysql存储过程的definer的问题1

关于mysql存储过程的definer的问题1

由于对mysql了解不够透彻,导致对definer问题查了好久才解决问题 
记录自己的一些理解! 
问题描述: 
在数据库写,为一个表写了一个触发器,此触发器调用一个存储过程;由公司写的一个c程序自动往该表写入数据,通过触发器转换成业务相关数据;同过root@localhost连接数据库,但提示192.168.2.%不存在 
问题查找: 
登录数据库,show procedure statusG 发现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学习笔记
第三章 MySQL支持的数据类型
mysql 寄件1/1
构建宠物寄养系统:从MySQL到Flask的实践之旅
宠物领养系统设计:Android开发与MySQL数据库应用
SQL注入1之基本原理
宠物商城+ssm框架+jsp页面+mysql数据库
MySQL数据库程序设计《有下列程序:程序运行后的输出结果是()。voidsort(inta[],intn){inti,j,t;for(i=0;i》相关单选题
java计算机毕业设计基于微信小程序的宠物小管家【附源码+远程部署+程序+mysql】

网址: 关于mysql存储过程的definer的问题1 https://m.mcbbbk.com/newsview538870.html

所属分类:萌宠日常
上一篇: 问道宠物继承天生技能介绍!副宠规
下一篇: 冰壶怎么计算得分 冰壶比赛规则