仍然需要(至少一个)具有log_bin_trust_function_creators = 1的SUPER权限

时间:2016-08-03 09:01:20

标签: mysql amazon-web-services aws-rds

我尝试将databases中的MySQL RackSpace备份到AWS

我已按照此blog的建议操作,并已在log_bin_trust_function_creators=1控制面板中设置AWS RDS并重新启动了我的数据库实例。

然而,经过一段时间和某些位移动后,我收到以下错误:

Warning: Using a password on the command line interface can be insecure.
  16GiB 0:36:39 [7.43MiB/s] [7.43MiB/s]
ERROR 1227 (42000) at line 21566: Access denied; you need (at least one of) the SUPER privilege(s) for this operation

我知道我的数据库中有一些触发器,也许还有其他一些好东西,尽管我grants上的aws似乎已经足够了:

mysql> SHOW GRANTS;
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@%                                                                                                                                                                                                                                                                                                                                              |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD <secret> WITH GRANT OPTION |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

可能是什么问题?我该如何解决?

修改

而不是转储到ssh我只是将它转储到sed -n '21565,21567p',所以我假设输出(行号)应该是正确的:

/*!50001 SET collation_connection      = utf8_general_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`127.0.0.1` SQL SECURITY DEFINER */

1 个答案:

答案 0 :(得分:0)

这里的问题是数据库中的定义行。始终牢记:

只有拥有SUPER权限,才能指定除自己帐户以外的DEFINER值。(请参阅下文)

http://dev.mysql.com/doc/refman/5.6/en/stored-programs-security.html

RDS始终牢记您不会获得超级特权。