그래서 SQL 파일을 rds (1G MEM, 1 CPU)로 가져 오려고합니다. SQL 파일은 1.4G와 같습니다.
mysql -h xxxx.rds.amazonaws.com -u user -ppass --max-allowed-packet = 33554432 db <db.sql
다음과 같이 붙어 있습니다.
ERROR 1227 (42000) at line 374: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
실제 SQL 내용은 다음과 같습니다.
/*!50003 CREATE*/ /*!50017 DEFINER=`another_user`@`1.2.3.4`*/ /*!50003 TRIGGER `change_log_BINS` BEFORE INSERT ON `change_log` FOR EACH ROW
IF (NEW.created_at IS NULL OR NEW.created_at = '00-00-00 00:00:00' OR NEW.created_at = '') THEN
SET NEW.created_at = NOW();
END IF */;;
another_user
rds에 존재하지 않으므로 다음을 수행합니다.
GRANT ALL PRIVILEGES ON db.* TO another_user@'localhost';
여전히 운이 없습니다.
DEFINER
는 로그인 한 사용자에게SUPER
권한 이 없을 때 (RDS에서 자체적으로 허용 되지 않음) 다른 사용자를 지정 하면 임의의 권한 상승이 허용되기 때문입니다.DEFINER
(통화 사용자의 것과는 반대로-theirINVOKER
), 기본적으로. 또한 서버 오류에서 .