Wie suche ich, ob ein MySQL-Benutzer auf dem System vorhanden ist?

8

Ich finde keinen Benutzer show grants for 'username'@'localhost'', weil ich denke, dass der Benutzername möglicherweise etwas anders ist. Daher möchte ich eine Wildcard-Suche aller Datenbankbenutzer durchführen. Wie kann ich das machen?

Update: Zur Verdeutlichung, da ich denke, dass ich vielleicht nicht 100% klar war. Mit Platzhalter meinte ich, ich wollte nur nach einem Teil des Benutzernamens suchen können oder nach allen Benutzern, deren Name mit dem Muster übereinstimmt. Auf dem System, auf dem ich dies brauchte, gab es mehr als 5.000 Benutzer, und obwohl dies kein großer Leistungsverlust ist, möchte ich sie auch nicht einzeln durchsehen.

Xenoterracid
quelle

Antworten:

9

Dank @matthewh ‚s Antwort habe ich es geschafft , eine Abfrage zu komponieren , die funktionieren würde , wenn durch eine große Anzahl von Benutzern die Suche:

use mysql;
select  User, Host from  user where User like 'user%';

Hinweis: <user> Unabhängig von der Komponente des Benutzernamens, nach der Sie suchen müssen, benötigen Sie möglicherweise ein% auf beiden Seiten, wenn Sie den Anfang des Benutzernamens nicht kennen. <> Soll lediglich die Variable notieren und nicht in den Benutzernamen aufnehmen eine tatsächliche Abfrage, es sei denn, der Benutzername enthält <oder>.

Xenoterracid
quelle
7
use mysql;

select Host,User from user;

gibt Ihnen alle MySQL-Benutzer auf diesem Server.

Matt Healy
quelle
Ich habe dies abgelehnt, weil es nicht das tut, was ich mit Wildcard gemeint habe, obwohl ich anerkenne, dass dies möglicherweise meine Schuld daran war, dass ich im Vorfeld nicht klar genug war. Es könnte als alles interpretiert worden sein, wenn das, was ich wollte, das Äquivalent von "find-name" user * "für einen Dateinamen unter Unix war.
Xenoterracide