Предоставить пользователю разрешение с использованием подстановочного знака на MYSQL
Я хотел бы, например, предоставить право выбора для конкретного пользователя во всех базах данных на моем сервере, запущенных WA_, например, на моем сервере
Я делаю следующий синтаксис, но это не работает
grant select on `wa\_%`.`mytable`
to 'myuser'@'localhost'
identified by '123456';
но это дает мне эту ошибку
Таблица wa_%. Mytable'не существует
2 ответа
MySQL не разрешает такой тип предоставления прав; в имени базы данных могут быть только символы подстановки, если вы предоставляете права доступа к базе данных или на глобальном уровне. Смотрите ниже выдержку из руководства 5.5:
Подстановочные знаки "_" и "%" разрешены при указании имен базы данных в операторах GRANT, которые предоставляют привилегии на глобальном уровне или уровне базы данных.
Так, например, это будет работать, потому что вы предоставляете select на уровне базы данных:
grant select on `wa\_%`.*
to 'myuser'@'localhost'
identified by '123456';
В вашем примере вы пытаетесь предоставить доступ к определенной таблице, используя подстановочное имя схемы, которое не поддерживается MySQL.
Вы можете попробовать это:
GRANT SELECT ON `wa\_%` . * TO 'myuser'@'localhost' identified by '123456';