Когда вы создаете экземпляр MySQL AWS RDS, RDS создает пользователя root rdsadmin
. Мне любопытно узнать, какие разрешения есть у этого пользователя. Но когда я пытаюсь SHOW GRANTS for 'rdsadmin'@'%';
, я получаю сообщение:
ERROR 1141 (42000): There is no such grant defined for user 'rdsadmin' on host '%'
Есть ли альтернативная команда, которую я могу использовать для просмотра всех разрешений/привилегий rdsadmin
?
@BillKarwin Это сработало - спасибо! ---> ПОКАЗАТЬ ГРАНТЫ для 'rdsadmin'@'localhost';
В MySQL идентификация пользователя действительно определяется парой пользователя и хоста. Итак, 'rdsadmin'@'%' — это один конкретный пользователь, а 'rdsadmin'@'localhost' — пользователь другой. Существование одного не означает существования обоих, и у каждого могут быть свои привилегии.
Таким образом, 'rdsadmin'@'%' не существует в RDS. Принимая во внимание, что «rdsadmin» @ «localhost» — это пользователь, созданный RDS. Учитывая этот хост, это означает, что ни один клиент не может подключиться как этот пользователь с удаленного хоста. Они могут подключаться только от клиентов на хосте RDS, к которому вы все равно не можете получить доступ.
Но этот пользователь по-прежнему может определять хранимые подпрограммы и представления, так что вы по-прежнему заботитесь о его привилегиях.
SHOW GRANTS FOR 'rdsadmin'@'localhost';
Возможно это не
rdsadmin@%
а на другом хостинге. ПопробуйтеSELECT user, host FROM mysql.user WHERE user='rdsadmin';
Это не покажет вам их гранты, но покажет, какой хост использовать для оператора SHOW GRANTS.