Je veux créer un nouvel utilisateur dans MySQL et lui donner un accès complet uniquement à une base de données, disons dbTest
, que je crée avec une commande comme create database dbTest;
. Quelles seraient les commandes MySQL pour faire cela ?
Essayez ceci pour créer l'utilisateur :
CREATE USER 'user'@'hostname';
Essayez ceci pour lui donner accès à la base de données dbTest
:
GRANT ALL PRIVILEGES ON dbTest.* To 'user'@'hostname' IDENTIFIED BY 'password';
Si vous exécutez le code/site en accédant à MySQL sur la même machine, le nom d'hôte sera localhost.
Maintenant, la décomposition.
GRANT
- C'est la commande utilisée pour créer des utilisateurs et accorder des droits sur les bases de données, les tables, etc.
ALL PRIVILEGES
- Ceci indique que l'utilisateur aura tous les privilèges standards. Cependant, cela n'inclut pas le privilège d'utiliser la commande GRANT.
dbtest.*
- Ceci indique à MySQL d'appliquer ces droits pour une utilisation dans la base de données dbtest entière. Vous pouvez remplacer les * par des noms de tables ou des routines de stockage spécifiques si vous le souhaitez.
TO 'user'@'hostname'
- 'user' ; est le nom d'utilisateur du compte utilisateur que vous créez. Note : Les guillemets simples doivent être présents. 'hostname' ; indique à MySQL à partir de quels hôtes l'utilisateur peut se connecter. Si vous ne voulez vous connecter qu'à partir de la même machine, utilisez localhost
.
IDENTIFIED BY 'password'
- Comme vous l'avez deviné, ceci définit le mot de passe pour cet utilisateur.
Connectez-vous à MySQL :
mysql -u root
Maintenant, créez et accordez
GRANT ALL PRIVILEGES ON dbTest.* To 'user'@'hostname' IDENTIFIED BY 'password';
Si vous souhaitez simplement accorder un accès complet sans restriction à une base de données (par exemple sur votre machine locale pour une instance de test), vous pouvez accorder l'accès à l'utilisateur anonyme, comme suit :
GRANT ALL PRIVILEGES ON dbTest.* To ''@'hostname'
C'est bien pour des données inutiles en développement. Ne le faites pas avec ce à quoi vous tenez.
Vous pouvez créer de nouveaux utilisateurs à l'aide de l'instruction [CREATE USER][1], et leur donner des droits à l'aide de [GRANT][2].
[1] : http://dev.mysql.com/doc/refman/5.1/en/create-user.html [2] : http://dev.mysql.com/doc/refman/5.1/en/grant.html