Recherche de site Web

MySQL : Autoriser l’utilisateur à créer une base de données


Après avoir installé MySQL sur votre système Linux, vous pouvez créer un ou plusieurs utilisateurs et leur accorder des autorisations pour faire des choses comme créer des bases de données, accéder aux données de table, etc.

Il n’est pas recommandé d’utiliser le compte root, mais plutôt de créer un nouveau compte et d’accorder des privilèges si nécessaire. Dans ce tutoriel, vous allez voir comment autoriser un utilisateur à créer une base de données MySQL sous Linux.

Dans ce tutoriel, vous allez apprendre :

  • Comment créer un nouvel utilisateur MySQL
  • Comment autoriser un utilisateur à créer des bases de données MySQL
  • Comment accorder tous les privilèges à un utilisateur

MySQL : Autoriser l’utilisateur à créer une base de données étape par étape

  1. Commencez par ouvrir MySQL avec le compte root.

    
    sudo mysql
    

    Ou, sur certaines configurations, il peut vous être demandé d’entrer la commande suivante et de fournir votre mot de passe root :

    
    mysql -u root -p
    
  2. Si vous ne l’avez pas déjà fait, créez un nouvel utilisateur à qui nous accorderons des autorisations de création de base de données dans les étapes ultérieures. L’exemple suivant crée l’utilisateur linuxconfig. Remplissez les valeurs de l’espace réservé avec vos propres informations.

    
    mysql> CREATE USER 'linuxconfig'@'localhost' IDENTIFIED BY 'password_here';
    
  3. Il est maintenant temps d’accorder des permissions à notre utilisateur linuxconfig afin qu’il puisse créer de nouvelles bases de données. Nous allons le faire en leur accordant l’autorisation CREATE avec la commande suivante.

    
    mysql> GRANT CREATE ON *.* TO 'linuxconfig'@'localhost';
    

    Si vous préférez accorder à votre utilisateur les autorisations de créer uniquement de nouvelles tables au sein d’une certaine base de données, par exemple la base de données testdb, nous utiliserons la commande suivante :

    
    mysql> GRANT CREATE ON testdb.* TO 'linuxconfig'@'localhost';
    

    Voici comment vous accorderiez des autorisations complètes à l’utilisateur, ce qui lui permet de créer des bases de données, ainsi que d’y accéder, d’écrire de nouvelles données, de supprimer des lignes, etc.

    
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'linuxconfig'@'localhost';
    

    Si vous devez accorder des privilèges supplémentaires à l’utilisateur, mais que vous ne souhaitez pas lui donner TOUS les privilèges, vous pouvez en utiliser d’autres ci-dessous.

    
    CREATE - allow user to create new tables in the database
    DROP - allow user to delete tables or the database itself
    DELETE - allow user to delete rows withs in the tables
    INSERT - allow user to insert new data rows into the tables
    SELECT - allow user to read entries in the database
    UPDATE - allow user to update existing database rows
    
  4. La dernière étape consiste à vider tous les privilèges avant de quitter complètement MySQL.

    
    mysql> FLUSH PRIVILEGES;
    mysql> exit
    

C’est tout ce qu’il y a à faire. Votre utilisateur doit maintenant être en mesure de créer de nouvelles bases de données ou au moins de créer de nouvelles tables dans la base de données sur laquelle vous lui avez accordé des autorisations, selon la configuration que vous avez choisie.

Réflexions finales

Dans ce tutoriel, nous avons vu comment permettre à un utilisateur de créer une base de données en MySQL sur un système Linux. C’est mieux et plus sûr que d’utiliser le compte root pour tout faire, et devrait fonctionner de la même manière sur n’importe quelle distribution Linux. Il est maintenant assez facile d’accorder d’autres privilèges ou de les retirer au besoin.

Articles connexes: