mysql用户报错Access denied; you need (at least one of) the SUPER privilege(s) for this operation
2022-05-11 19:15 abce 阅读(9390) 评论(0) 编辑 收藏 举报同事说数据库账号没有授权,要求给某个数据库用户授予super权限。
纳闷呢,为啥需要super权限啊!
原来他在创建函数的时候报错:
> 1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation
让他把创建脚本发来一看,果然有问题:
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
这里是从测试环境拷贝过来的,顺带了
DEFINER=`test`@`%`
而这个环境真正的账户是
DEFINER=`test`@`192.168.%`
把这个部分去掉即可。