代码改变世界

mysql用户报错Access denied; you need (at least one of) the SUPER privilege(s) for this operation

  abce  阅读(9503)  评论(0编辑  收藏  举报

同事说数据库账号没有授权,要求给某个数据库用户授予super权限。

纳闷呢,为啥需要super权限啊!

 

原来他在创建函数的时候报错:

1
> 1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation

 

让他把创建脚本发来一看,果然有问题:

1
2
3
4
5
6
7
8
9
CREATE DEFINER=`test`@`%` FUNCTION `gn`(`ist` varchar(30)) RETURNS varchar(10)
BEGIN
  DECLARE v_inv NUMERIC(20,0);
  DECLARE v_strSn VARCHAR(30);
  DECLARE v_t VARCHAR(10);
  SET v_inv = getSeqNextValue(ist);
  select LPAD(v_inv,10,"0") into v_t from dual;
  RETURN v_t;
END

  

这里是从测试环境拷贝过来的,顺带了

1
DEFINER=`test`@`%`

  

而这个环境真正的账户是

1
DEFINER=`test`@`192.168.%`

  

把这个部分去掉即可。

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示