MySQL GRANT PROXY - was ist das?

14

Ich renne:

show grants for root@localhost;

und ich verstehe

 GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION

Aus MySQL-Dokumenten:

https://dev.mysql.com/doc/refman/5.5/en/proxy-users.html

Dadurch kann der externe Benutzer ein Proxy für den zweiten Benutzer sein. das heißt, die Rechte des zweiten Benutzers zu haben. Mit anderen Worten, der externe Benutzer ist ein "Proxy-Benutzer" (ein Benutzer, der sich als ein anderer Benutzer ausgeben oder bekannt werden kann), und der zweite Benutzer ist ein "Proxy-Benutzer" (ein Benutzer, dessen Identität von einem Proxy-Benutzer übernommen werden kann). .

Aber ich verstehe nicht, was sie bedeuten. Ich habe das System von einem anderen Mitarbeiter erhalten, der den Job verlassen hat und sicherstellen möchte, dass alles sicher ist und nicht weiß, ob dieses Stipendium überhaupt benötigt wird. Aber wenn es keine Sicherheitsprobleme gibt, kann ich es lassen.

Kann das jemand einfacher erklären?

Aktualisieren:

Wie kann ich mich als anderer Benutzer verbinden? Ich habe verschiedene Kombinationen von Benutzernamen und Passwort ausprobiert, kann aber keine Verbindung herstellen.

Zum Beispiel habe ich den Benutzer root verwendet, aber ein Passwort von einem anderen Benutzer, was nicht funktioniert hat. Versucht einen anderen Benutzer und root-Passwort, hat auch nicht funktioniert.

Aktualisieren:

Oder bedeutet dies möglicherweise, dass der Root-Benutzer eine Verbindung als anderer Benutzer herstellen kann? Wie geht das zumindest zum Beispiel, wenn ja?

Darius.V
quelle
"Das anfängliche Root-Konto, das während der MySQL-Installation erstellt wurde, verfügt über die Berechtigung PROXY ... WITH GRANT OPTION für '' @ '', dh für alle Benutzer und alle Hosts. Dadurch kann Root Proxy-Benutzer einrichten und delegieren für andere Konten die Berechtigung zum Einrichten von Proxy-Benutzern. " Von Docs hier: dev.mysql.com/doc/refman/5.5/en/proxy-users.html
Katie

Antworten:

3

Die MySQL-Benutzerauthentifizierung ist ein ziemlich langwieriger Prozess. Ich verweise auf meine 3,5 Jahre alte Antwort auf den MySQL-Fehler: Zugriff für Benutzer 'a' @ 'localhost' verweigert (mit Kennwort: YES), damit Sie sehen können, welche Schritte ein Benutzer zur Authentifizierung unternimmt.

Mit der PROXY-Bewilligung kann sich ein Benutzer als ein anderer Benutzer tarnen und das normale, aber langwierige Benutzerauthentifizierungsprotokoll von MySQL umgehen .

Solche Vollmachten könnten eine Sicherheitslücke sein, wenn man davon Kenntnis hat und anfängt, sie auszunutzen. Die schnellste Möglichkeit, dies zu deaktivieren, ist das Ausführen

TRUNCATE TABLE mysql.proxies_priv;
FLUSH PRIVILEGES;

Dadurch werden die aktuellen Proxy-Berechtigungen gelöscht.

Wenn Sie anschließend die Proxy-Berechtigungen einschränken möchten, rufen Sie das Betriebssystem auf und gehen Sie folgendermaßen vor:

cd /var/lib/mysql/mysql
chmod -w proxies_priv.*

Dadurch wird verhindert, dass neue Proxy-Berechtigungen erstellt werden.

VERSUCHE ES !!!

RolandoMySQLDBA
quelle
1
Was ist, wenn etwas kaputt geht, wenn ich die Tabelle abschneide? Ich kann vor dem Abschneiden - Exportieren und wenn etwas kaputt geht, dann füge diese Zeilen nochmal ein und sollte alles funktionieren, hoffe ich. Ich sehe, es sind 2 Fehler in der Tabelle.
Darius.V
Meine Kollegen sagen, dass es keine Sicherheitslücke gibt, weil es root ist und er trotzdem alle Rechte hat. Aber vielleicht haben sie nicht verstanden, warum ich gefragt habe - kann ich mich mit einem Nicht-Root-Benutzer als Root-Benutzer verbinden, weil es einen Proxy gibt und dann Rechte habe?
Darius.V
Hinweis: Diese Antwort zeigt nicht, wie die Proxy-Funktion verwendet wird
Alastair Irvine