La commande suivante fournit tous les privilèges dans toutes les bases de données pour l'utilisateur «admin». Mais cela ne permet pas à «admin» de créer une base de données.
GRANT ALL ON * . * TO 'admin'@'localhost';
Comment puis-je fournir l'accès à «admin» pour créer une base de données?
Alors que j'essaie de créer une base de données, j'obtiens l'erreur suivante -
ERREUR 1044 (42000): accès refusé pour l'utilisateur 'admin' @ 'localhost' à la base de données 'newdb'
GRANT ALL ON *.* TO 'admin'@'localhost';
? Dans votre exemple, vous dites que vous avez exécuté:,GRANT ALL ON * . * TO 'admin'@'hostname';
maishostname
est un hôte distinct delocalhost
.GRANT
?flush privileges;
tant que root?Réponses:
TOUS les privilèges incluent "TOUS", sauf "AVEC L'OPTION GRANT" ... Ainsi, la commande ci-dessus permettra également à l'administrateur de créer la base de données.
Vous voudrez peut-être afficher l'erreur que vous obtenez. Notez que dans GRANT ci-dessus, vous n'avez pas spécifié le mot de passe pour l'utilisateur administrateur également.
Mise à jour:
Vous devriez pouvoir faire ce qui suit:
connectez-vous en tant que root et créez un utilisateur:
Connectez-vous en tant qu'administrateur (sans mot de passe):
Lorsque vous vous connectez, vous pouvez vérifier vos privilèges comme suit:
mysql> show grants;
ou
mysql> show grants for current_user();
mysql> select current_user()
vous montrera, l'utilisateur auquel vous vous êtes connecté.la source
newdb
. * À 'admin' @ 'localhost' | + ------------------------------------------------- ---------------------------- + 2 lignes en set (0,00 sec)Un nouvel utilisateur n'a aucune autorisation pour faire quoi que ce soit avec les bases de données. En fait, si un nouvel utilisateur essaie même de se connecter (avec le mot de passe, le mot de passe), il ne pourra pas atteindre le shell MySQL.
Par conséquent, vous devez fournir à l'utilisateur l'accès
Les astérisques de cette commande font référence à la base de données et à la table (respectivement) auxquelles ils peuvent accéder. Cette commande spécifique permet à l'utilisateur de lire, modifier, exécuter et effectuer toutes les tâches dans toutes les bases de données et tables.
Une fois que vous avez finalisé les autorisations que vous souhaitez configurer pour vos nouveaux utilisateurs, assurez-vous toujours de recharger tous les privilèges.
Maintenant, tous les changements seraient en vigueur.
la source