Я хочу создать пользователя 'projectA', который имеет одинаковые разрешения для каждой базы данных с именем 'projectA _%'
Я знаю, что это возможно, но MySQL не нравится мой синтаксис:
grant all on 'projectA\_%'.* to 'projectA'@'%';
Ссылка: http://dev.mysql.com/doc/refman/5.1/en/grant.html
Если я использую в синтаксисе бэк-тики вместо одинарных кавычек, похоже, все работает нормально:
grant all on `projectA\_%`.* to `projectA`@`%`;
GRANT ALL PRIVILEGES ON `projectA\_%`.* TO 'projectA'@'%' IDENTIFIED BY 'your_passwd';
для имени базы данных необходимы обратные тики
Отредактировано: знак подчеркивания теперь экранирован.
Согласно документации MySQL GRANT :
Подстановочные знаки «_» и «%» разрешены при указании имен базы данных в операторах GRANT, которые предоставляют привилегии на глобальном уровне или базе данных уровни. Это означает, например, что если вы хотите использовать «_» символ как часть имени базы данных, вы должны указать его как «\ _» в оператор GRANT, чтобы предотвратить возможность доступа пользователя дополнительные базы данных, соответствующие шаблону подстановочных знаков; например, ГРАНТ ... ON `foo \ _bar`. * TO ....