Я создал экземпляр AWS RDS MySQL и хотел бы создать дополнительного пользователя, у которого есть все права во всех базах данных;
grant all privileges on *.* to "someuser"@"10.0.0.0/255.255.0.0";
ERROR 1045 (28000): Access denied for user 'root'@'%' (using password: YES)
Как видите, мне не разрешено это делать, хотя я запускаю команду как root.
Как я могу это решить?
При использовании RDS (служба управляемой базы данных) вы просто не можете создать пользователя root, как вы пытаетесь это сделать.
Просто используйте
CREATE USER 'username'@'%' IDENTIFIED BY 'userpassword';
GRANT SELECT ON [your_database].[some_table] TO 'username'@'%';
В RDS не разрешено предоставлять все разрешения для *.*
, но вы можете использовать хитрость:
GRANT ALL PRIVILEGES ON `%`.* TO 'someuser'@XXX;
Также не забывайте: ALL [PRIVILEGES]
дает все разрешения, кроме GRANT OPTION
и PROXY
!
Поскольку вы, по сути, пытаетесь создать новый корень пользователь, вы можете вместо этого предоставить своему приложению учетные данные существующего главный пользователь созданный при настройке RDS. Не то чтобы это хорошая практика, но она должна решить вашу проблему.