Créer un nouvel utilisateur dans MySQL et lui donner un accès complet à une base de données.

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&#39 ; est le nom d'utilisateur du compte utilisateur que vous créez. Note : Les guillemets simples doivent être présents. 'hostname&#39 ; 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.

Commentaires (10)

Pour créer un utilisateur et lui accorder tous les privilèges sur une base de données.

Connectez-vous à MySQL :

mysql -u root

Maintenant, créez et accordez

GRANT ALL PRIVILEGES ON dbTest.* To 'user'@'hostname' IDENTIFIED BY 'password';

Utilisateur anonyme (pour les tests locaux uniquement)

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'

Attention

C'est bien pour des données inutiles en développement. Ne le faites pas avec ce à quoi vous tenez.

Commentaires (4)

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

Commentaires (1)