0 mysql amazon-web-services amazon-rds
错误代码:1227 访问被拒绝;您需要(至少其中之一)此操作的 SUPER 权限
出现上述错误,在我的 SQL Yog 社区中可以看到三个用户 mysq.sys@localhost
rdsadmin@localhost
root@% <--------------这是我的用户,
即使我设法给创建选项的特权,仍然无法创建我的函数我的函数如下所示
DELIMITER $$
USE `mydb`$$
DROP FUNCTION IF EXISTS `getval`$$
CREATE DEFINER=`root`@`vfinances-dev.cf88ibo44fqq.ap-south-1.rds.amazonaws.com` FUNCTION `nextval`(`input_name` VARCHAR(100)) RETURNS BIGINT(20)
BEGIN
DECLARE cur_val BIGINT(20);
SELECT value INTO cur_val FROM data WHERE name = input_name;
RETURN cur_val;
END$$
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)
CREATE DEFINER=`root`@`xxxxxx.hhhhhhhh.ap-south-1.rds.amazonaws.com` FUNCTION ...
Run Code Online (Sandbox Code Playgroud)
您的问题出在DEFINER指令中。
正如您已经指出的,您的帐户不是这个...
`root`@`xxxxxx.hhhhhhhh.ap-south-1.rds.amazonaws.com`
Run Code Online (Sandbox Code Playgroud)
……是这个……
`root`@`%`
Run Code Online (Sandbox Code Playgroud)
在 MySQL 中,帐户由用户名和主机模式的组合标识......并且您不能将其指定DEFINER为除您自己以外的其他人,除非您拥有SUPER特权,因为这将是一个广泛开放的特权升级漏洞利用向量。
DEFINER从您的语句中删除,因为它没有任何作用——在CREATE执行语句时,定义者会自动设置为实际的定义用户——或者正确设置它。
| 归档时间: |
|
| 查看次数: |
1298 次 |
| 最近记录: |