IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration MySQL Discussion :

Problème de connexion root via ssh à distance


Sujet :

Administration MySQL

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 270
    Par défaut Problème de connexion root via ssh à distance
    Bonjour à tous,

    Ma BDD est MariaDB.

    Depuis mon Mac, j'accède via SSH à mon serveur.

    Première curiosité, si je ne fais pas "sudo", je ne peux pas me connecter avec l'utilisateur root mysql (mysql -uroot -p)
    Si je fais sudo ou que je me connecte avec root mysql, j'ai cette permission.
    Je n'ai pas ce problème avec un autre utilisateur "mon_user" de ma base de données avec moins de permissions.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    MariaDB [mysql]> SELECT Host,User,Super_priv FROM user;
    +-----------+--------+------------+
    | Host      | User   | Super_priv |
    +-----------+--------+------------+
    | localhost | root   | Y          |
    | localhost | mon_user | N          |
    +-----------+--------+------------+
    Et j'ai le même problème avec TablePlus (Mac), qui ne pose aucun souci avec "mon_user" mais qui ne veut pas se connecter avec root (mysql).

    A noter que je suis bien sûr de mon mdp root (mysql) puisque j'arrive à m'y connecter en ssh si je fais un sudo...

    Je veux bien votre aide car je sèche là..

    Merci !

  2. #2
    Membre émérite
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2012
    Messages : 381
    Par défaut
    Bonjour,

    Vous confondez l'utilisateur root du système (celui qui est utilisé pour se connecter via ssh ou pour la commande sudo) et l'utilisateur root qui est l'administrateur du serveur de base de données.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 270
    Par défaut
    Non, je ne fais pas de confusion à ce niveau, mais si vous me dites où vous pensez que j'ai fait la confusion, je réexpliquerai mieux.

    Je vais voir si je peux éditer mon message pour préciser quel root à chaque fois.

  4. #4
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 917
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 917
    Par défaut
    Salut Romalafrite.

    Citation Envoyé par Romalafrite
    Première curiosité, si je ne fais pas "sudo", je ne peux pas me connecter avec l'utilisateur root mysql (mysql -uroot -p)
    Non, ce n'est pas une curiosité, mais un problème de sécurité.
    Il faut savoir que par défaut, vous ne pouvez pas vous connecter au compte "root" par "ssh".
    Mais c'est possible si vous supprimez cette interdiction des fichiers de configurations de "ssh".
    Je précise que le compte "root" dont je parle ici, est le compte utilisé pour administrer votre système d'exploitation sous linux.

    Citation Envoyé par Romalafrite
    Si je fais sudo ou que je me connecte avec root mysql, j'ai cette permission.
    Ce qui est tout à fait normal, puisque votre serveur a été installé sous le compte "root".
    Et que par défaut, dans le servur "MySql", le compte "root" a tous les droits !

    Citation Envoyé par Romalafrite
    Je n'ai pas ce problème avec un autre utilisateur "mon_user" de ma base de données avec moins de permissions.
    De quel problème parlez-vous car ce n'est pas très clair ?
    Quand vous dites que vous vous connectez à MySql, qu'est-ce que vous faites exactement ?

    Quand vous vous connectez par "SSH", quel est le compte dans lequel vous vous retrouvez ? (Faites un "who am i" ou "whoami" tout attaché).
    Ce compte "mon_user" a peut-être les mêmes droits que le compte "root" et c'est pourquoi, vous pouvez accéder à MySql.

    Le fait de ne pas avoir des super privièges, ne veut pas dire que vous ne pouvez rien faire dans MySql.
    Peut-être avez-vous seulement le droit de lire vos tables.

    Citation Envoyé par Romalafrite
    Et j'ai le même problème avec TablePlus (Mac), qui ne pose aucun souci avec "mon_user" mais qui ne veut pas se connecter avec root (mysql).
    Qu'est-ce que "TablePlus" (Mac) ?

    @+

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 270
    Par défaut
    Citation Envoyé par Artemus24 Voir le message
    Non, ce n'est pas une curiosité, mais un problème de sécurité.
    Il faut savoir que par défaut, vous ne pouvez pas vous connecter au compte "root" par "ssh".
    A priori, n'ayant rien fait de spécifique à ce niveau, ma config par défaut me permet bien cela.

    Citation Envoyé par Artemus24 Voir le message
    Mais c'est possible si vous supprimez cette interdiction des fichiers de configurations de "ssh".
    Je précise que le compte "root" dont je parle ici, est le compte utilisé pour administrer votre système d'exploitation sous linux.
    Je n'ai pas modifié cette configuration SSH

    Citation Envoyé par Artemus24 Voir le message
    Ce qui est tout à fait normal, puisque votre serveur a été installé sous le compte "root".
    Et que par défaut, dans le servur "MySql", le compte "root" a tous les droits !
    là vous me parlez du compte root serveur dans la première ligne, et j'ai l'impression que vous me parlez du root mysql dans la deuxième ligne ?
    si vous parlez de l'utilisateur root serveur, je comprends.

    Citation Envoyé par Artemus24 Voir le message
    De quel problème parlez-vous car ce n'est pas très clair ?
    Quand vous dites que vous vous connectez à MySql, qu'est-ce que vous faites exactement ?
    Je parle juste de me connecter comme le montre la ligne de commande que j'ai citée : (mysql -uroot -p) pour accéder à l'interface en ligne de commande

    Citation Envoyé par Artemus24 Voir le message
    Quand vous vous connectez par "SSH", quel est le compte dans lequel vous vous retrouvez ? (Faites un "who am i" ou "whoami" tout attaché).
    Ce compte "mon_user" a peut-être les mêmes droits que le compte "root" et c'est pourquoi, vous pouvez accéder à MySql.
    c'est effectivement "mon_user" (en fait "romain"), qui a des droits via sudo uniquement.
    si je fais ma commande mysql -uroot -p avec l'utilisateur "mon_user", ça ne marche pas
    si je fais ça avec sudo ça marche, c'est l'objet de ma question

    Citation Envoyé par Artemus24 Voir le message
    Le fait de ne pas avoir des super privièges, ne veut pas dire que vous ne pouvez rien faire dans MySql.
    Peut-être avez-vous seulement le droit de lire vos tables.
    Je ne parle pas de privilèges, juste de l'accès à l'interface en ligne de commande (commande ssh mysql -uroot -p)

    Citation Envoyé par Artemus24 Voir le message
    Qu'est-ce que "TablePlus" (Mac) ?

    @+
    Un outil comme MySQL Workbench ou PhpMyAdmin pour accéder à la base de données via une interface graphique, particulièrement pratique pour MariaDB car Workbench n'est pas encore au top sur ce sujet..

  6. #6
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 917
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 917
    Par défaut
    Salut Romalafrite.

    Citation Envoyé par Romalafrite
    A priori, n'ayant rien fait de spécifique à ce niveau, ma config par défaut me permet bien cela.
    Il suffit de le vérifier !
    Vous vous rendez dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo nano /etc/ssh/sshd_config
    Vous trouvez la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PermitRootLogin without-password
    et vous mettez à la place :
    Vous sauvegardez !
    Soit vous faites un :
    ou soit vous faites :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /etc/init.d/ssh restart
    Vous essayez de vous connecter par le compte "root", et en principe cela devrait fonctionner.
    Ne pas oublier de mettre un mot de passe à votre compte "root".

    Citation Envoyé par Romalafrite
    là vous me parlez du compte root serveur dans la première ligne, et j'ai l'impression que vous me parlez du root mysql dans la deuxième ligne ?
    Je vous parle bien, dans les deux cas, du même compte "root" par lequel vous vous êtes connectés dans votre système d'exploitation.
    De toute façon, il n'existe pas deux comptes "root". Dans les deux cas, c'est le même.
    Sauf que vous devez faire la distinction entre celui par lequel vous vous connectez dans votre système d'exploitation et celui qui possède tous les privilèges dans MySql.
    On peut très bien supprimer les privilèges du compte "root" dans mysql et les attribuer à un autre compte.

    Citation Envoyé par Romalafrite
    si vous parlez de l'utilisateur root serveur, je comprends.
    Jusqu'à présent, je parlais de l'accès au compte "root" de votre machine, à partie de SSH.

    Citation Envoyé par Romalafrite
    Je parle juste de me connecter comme le montre la ligne de commande que j'ai citée : (mysql -uroot -p) pour accéder à l'interface en ligne de commande
    Dans ce cas, le compte "root" existe et possède un mot de passe.

    Citation Envoyé par Romalafrite
    c'est effectivement "mon_user" (en fait "romain"), qui a des droits via sudo uniquement.
    Et ce compte "mon_user" a des droits qui peuvent être plus restreints par rapport à ceux de "root".
    Mais cela ne vous empêche pas d'interroger la table "users".

    Citation Envoyé par Romalafrite
    si je fais ma commande mysql -uroot -p avec l'utilisateur "mon_user", ça ne marche pas
    C'est normal car le compte par lequel vous vous êtes connecté se nomme "mon_user" et non pas "root".
    Par contre, vous devez faire "mysql -umon_user -p".

    Ou bien de changer de compte, en faisant "su root".
    Et dans ce cas, vous pourrez faire "mysql -uroot -p".

    Si vous désirez avoir pour le compte "mon_user", les mêmes privilèges que ceux du compte "root", vous devez intervenir dans le serveur mysql et de les modifier.
    a) changer de compte dans votre linux, en vous mettant dans "root".

    b) entrez dans phpmyadmin, avec le compte "root".

    c) cliquez sur "comptes utilisateurs".

    d) cliquez sur "editer les privilèges" de la ligne où vous avez le compte "mon_user".

    e) en haut de la page, vous avez les onglet : "global", "bases de données", "Modifier le mot de passe", "information pour la connexion".

    f) dans l'onglet "base de données", vous devez avoir :



    J'ai réduite l'image afin qu'elle puisse entrer dans le message.

    g) maintenant dans l'onglet "global", vous devez avoir :



    Si vous désirez, pour le compte "mon_user", avoir les même sprivilèges que "root", vous cliquez sur "tout cocher".
    Vous valider avant de sortir.

    h) tout en bas de la page "comptes utilisateurs", il y a ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NB : phpMyAdmin obtient la liste des privilèges directement à partir des tables MySQL. Le contenu de ces tables peut être différent des privilèges effectifs, si des changements manuels ont été apportés. Dans ce cas, il faudrait recharger les privilèges avant de continuer.
    Vous cliquez sur "rechargez les privilèges" et vous sortez.

    Citation Envoyé par Romalafrite
    Je ne parle pas de privilèges, juste de l'accès à l'interface en ligne de commande (commande ssh mysql -uroot -p)
    Justement vous n'avez pas bien compris ce que représente un compte et ses privilèges dans mysql et dans linux.

    Si vous vous connectez par le compte "mon_user", dans mysql, vous aurez les privilèges de ce compte, s'ils ont été déclarés dans l'onglet "comptes utilisateurs".
    Si par le compte "mon_user", ses privilèges pour accéder à mysql ne vous conviennent pas, il n'y a que deux solutions :
    Soit vous attribuez, dans mysql, les mêmes privilèges que pour le compte "root" mais pour le compte "mon_user".
    Soit vous continuez à faire la manipulation, qui consiste à passer dans linux du compte "mon_user" au compte "root" en faisant "su root".

    Maintenant, je ne sais pas trop ce que vous avez mis comme mot de passe, pour le compte "root" aussi bien dans linux que dans mysql.
    Afin d'éviter de taper à chaque fois et le compte et le mot de passe, vous pouvez l'introduire dans le fichier "my.ini", dans la partie "client".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [client]
    port   = 3306
    socket = mysql
     
    # ----------------------- #
    #     access features     #
    # ----------------------- #
     
    user     = root
    password = root
    host     = 127.0.0.1
    A lire : https://www.mon-code.net/article/100...s-Options-file

    @+

Discussions similaires

  1. Réponses: 8
    Dernier message: 20/07/2010, 12h25
  2. Problème de connexion à un sqlserver express à distance
    Par lastWarrior dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 22/03/2009, 20h23
  3. Connexion à MySQL via SSH
    Par arnaud_verlaine dans le forum WinDev
    Réponses: 0
    Dernier message: 18/04/2008, 15h21
  4. Connexion MySQL via SSH
    Par arnaud_verlaine dans le forum Installation
    Réponses: 4
    Dernier message: 03/03/2008, 11h14
  5. problème de connexion SQL via vb.net pour excel
    Par Sheppard38 dans le forum VB.NET
    Réponses: 3
    Dernier message: 28/06/2007, 11h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo