2010-04-19 8 views

Répondre

56

Si j'utilise en arrière-tics au lieu de guillemets simples dans la syntaxe, il semble fonctionner très bien:

grant all on `projectA\_%`.* to `projectA`@`%`; 
+3

back-tics ne sont nécessaires que pour le nom de la base de données, pas l'utilisateur – glarrain

+1

Cela ne fonctionne pour moi quand j'utilise' nom de table spécifique' au lieu de '*' '' Accorde tout sur 'projectA%' .'some_table% 'à' some_user' @ '%'; '' –

10
GRANT ALL PRIVILEGES ON `projectA\_%`.* TO 'projectA'@'%' IDENTIFIED BY 'your_passwd'; 

Modifié: Underscore est maintenant échappé.

2

Selon la documentation GRANT de MySQL:

Le « _ » et wildcards « % de » sont autorisés lors de la spécification des noms de base de données dans les déclarations de GRANT privilèges aux niveaux mondial ou base de données. Cela signifie, par exemple, que si vous voulez utiliser un caractère "_" comme nom de base de données, vous devez le spécifier comme "\ _" dans l'instruction GRANT, pour empêcher l'utilisateur d'accéder à bases de données supplémentaires correspondant au motif générique; par exemple, Grant ... ON `foo \ _bar`. * A ....