Как предоставить на нескольких базах данных? MySQL.
Что-то как
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE
ON 'databasesprefix%'.*
TO testuser@localhost IDENTIFIED BY 'testpasswd';
ваш пример должен работать. из руководства (5.5) :
Подстановочные знаки «_» и «%» разрешены при указании имен баз данных в операторах GRANT, которые предоставляют привилегии на глобальном уровне или уровне базы данных.
, где %
соответствует любому количеству (даже нулю) символов, а _
соответствует ровно одному символу. если вы хотите, чтобы в имени вашей базы данных было _
, вы должны экранировать его как \ _
. также обратите внимание на другие предостережения из руководства.
< UPDATE > как указывает другой ответ: если имя базы данных содержит подстановочные знаки, оно должно быть заключено в кавычки с помощью символа кавычки идентификатора , обратной кавычки («« ») ОБНОВЛЕНИЕ >
Вам просто нужно использовать обратные кавычки вместо кавычек вокруг префикса db_name.
Думаю, это сработает:
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE
ON `databasesprefix%`.*
TO testuser@localhost IDENTIFIED BY 'testpasswd';