wuhong_CSDN
wuhong_CSDN
采纳率33.3%
2017-05-27 15:54 阅读 2.7k

mysql执行存储过程权限

5

存储过程执行报错

 ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER privilege(s) for this operation
DELIMITER $$
USE `jta2db`$$
DROP PROCEDURE IF EXISTS `tblFinTotal_Procedure`$$
CREATE DEFINER=`jta2`@`%` PROCEDURE `tblFinTotal_Procedure`(IN table_name VARCHAR(20),IN input_time VARCHAR(20))
BEGIN
……………………

新手求解

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    fight_in_dl 战在春秋 2017-05-28 07:11
     CREATE DEFINER=`jta2`@`%` PROCEDURE `tblFinTotal_Procedure`(IN table_name VARCHA ..........................
    

    修改为:

     CREATE PROCEDURE `tblFinTotal_Procedure`(IN table_name VARCHA ..........................
    

    当存储过程的创建和使用是同一用户时,不需要加入DEFINER属性。
    去掉此属性,应该就不会报错了。

    用心回答每个问题,如果对您有帮助,请采纳答案好吗,谢谢。

    点赞 2 评论 复制链接分享
  • wuhong_CSDN wuhong_CSDN 2017-05-27 16:18

    对了,在SQLyog上用jta2用户可以执行。但是在linux上用jta2账户登录执行source /var/lib/mysql/20170527/tblFinTotal_procedure_ddl.sql就会报权限不足

    点赞 1 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2017-05-27 16:04

    权限不足,你视图删除存储过程,用root账户试试看

    点赞 评论 复制链接分享

相关推荐