Mysql : lister les utilisateurs avec leurs permissions [resolu]

Bonjour,

je dois refaire une machine en Debian 7 à cause d’une veille application.
J’aurai besoin d’aide pour récupérer mes utilisateurs de la veille base SQL vers la nouvelle.
C’est du mysql.

root@SRV:~# mysql --version
mysql  Ver 14.14 Distrib 5.5.60, for debian-linux-gnu (x86_64) using readline 6.2

j’ai tapé ceci en cherchant sur Google pour retrouver mes utilisateurs :

SELECT user, host FROM mysql.user;

cela me donner une liste mais je ne sais pas si cela correspond à mes utilisateurs.

merci de votre aide

Bonjour @cleloup ,

Il vous suffit tout simplement de créer une BDD de test avec la commande SQL CREATE DATABASE en lui ajoutant quelques utilisateurs puis de tester votre requête SQL. Oui, les utilisateurs de MySQL et leurs droits sont stockés dans une table. Je vous invite à vous pencher sur la documentation de MySQL ainsi qu’à toute autre documentation de prise en main de SQL tel que par exemple https://sql.sh

Bonjour Vbreton,

merci pour ta réponse. Mais cela ne répond pas à mes éspérances.
tu m’explique qu’il faut une bdd vierge pour tester.
mais la base je l’ai déjà , j’ai juste besoin de connaitre les utilisateurs et leurs droits.

je n’ai pas trouvé sur les pages que tu propose.

Tu peux individuellement trouvé ça de cette manière :

SHOW GRANTS FOR 'tonuser';

Pour lister tes utilisateurs tu peux simplement regarder sur la table user :

SELECT user,host FROM mysql.user;

Si tu veux maintenant tous afficher en une fois il te faut écrire une procédure et al jouer sur ton serveur :wink:

1 J'aime

J’en déduis que vous avez créez vous-même la base de données MySQL et que par conséquent vous avez un minimum d’expérience en SQL. Au regard de votre dernier message cela ne semble toutefois pas le cas.

Au lieu de faire n’importe quoi (ce qui n’est pas encore le cas) ou d’espérer que quelqu’un fasse le travail à votre place, il est fortement recommandé d’apporter quelques précisions complémentaires ainsi on pourra facilement vous guider. Le problème qui ressort actuellement est un problème de formalisation appropriée plutôt qu’un réel problème technique. L’effort doit être fait sur la présentation de votre contexte.

  • De quelle base de données s’agit-il (base de données associée à un programme ou base de données créée par vos soins à l’aide de commandes MySQL et SQL à partir du terminal) ?
  • Quel est votre niveau (connaissances en programmation SQL sous MySQL) ?
  • Comment vous connectez-vous à votre BDD (à partir d’une page en PHP ou à l’aide de commandes dans le terminal ?)

En créant vous même une base de données MySQL de test, vous vous isolez de votre base de données finale où vous souhaitez récupérez les données (utilisateurs), vous permettant ainsi une très bonne prise en main sans aucun risque. Une fois la prise en main effectuée, cela sera un jeu d’enfant pour récupérer vos données.

Remarquez que @Clochette vous a retourné la même ligne SQL que celle que vous avez récupérée: il semblerait que vous ne sachiez pas où écrire cette ligne. Au risque de me répéter, le plus efficace est réellement de créer une nouvelle base de données, surtout que vous avez accès à la commande mysql puisque mysql --version vous retourne bien la version de mysql. Consultez et étudiez la page https://dev.mysql.com/doc/refman/8.4/en/connecting.html pour vous connecter à une base de données. Une fois connecté, vous pourrez alors reprendre mon précédent lien et vous pencher sur la commande SQL CREATE DATABASE

Dans un deuxième temps (après la phase de prise en main assimilée), il vous suffira de placer le code SQL dans une page Web intégrant du PHP (PHP dispose d’une bibliothèque pour interroger en SQL une BDD MySQL) si vous n’aviez pas la main sur un terminal où est placé votre BDD contenant la table des utilisateurs que vous souhaitez récupérer.

Sans connaissances préalables mais avec une bonne motivation indispensable, il faut compter environ 3 à 6 heures pour une première prise en main sérieuse sous MySQL.

Enfin, certains logiciels tel que par exemple JIRA vous offre la possibilité d’introduire du SQL sans passer par un terminal. C’est aussi le cas avec PhpMyAdmin, très employé sur les serveurs Web avec PHP et MySQL.

a priori ça donne les utilisateurs

permissions:

select * from information_schema.user_privileges;

GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
user1@% def USAGE NO
user2@% def USAGE NO
user3@% def USAGE NO

merci cela fonctionne. j’ai pu trouvé mes utilisateurs et les permissions.

par c’est pas très secure à ce que je vois . chaque utilisateur a accès à tout.