Je veux créer un utilisateur 'projectA' qui a les mêmes autorisations sur chaque base de données nommée 'projectA_%'
Je sais que c'est possible mais MySQL n'aime pas ma syntaxe:
grant all on 'projectA\_%'.* to 'projectA'@'%';
Référence: http://dev.mysql.com/doc/refman/5.1/en/grant.html
Si j'utilise des back-tics au lieu de guillemets simples dans la syntaxe, cela semble fonctionner très bien:
grant all on `projectA\_%`.* to `projectA`@`%`;
GRANT ALL PRIVILEGES ON `projectA\_%`.* TO 'projectA'@'%' IDENTIFIED BY 'your_passwd';
des tics sont nécessaires pour le nom de la base de données
Edited: Underscore est désormais échappé.
Selon la documentation DE MYSQL :
Les caractères génériques "_" et "%" sont autorisés lors de la spécification de noms de base de données dans les instructions GRANT qui accordent des privilèges au niveau global ou de la base de données. Cela signifie, par exemple, que si vous souhaitez utiliser un caractère "_" dans le nom d'un base de données, vous devez le spécifier comme "\ _" dans l'instruction GRANT, pour empêcher l'utilisateur d'accéder à des bases de données supplémentaires correspondant le motif générique; par exemple, GRANT ... ON `foo\_bar`. * TO ....