Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Warum wird eine GRANT USAGE erstellt, wenn ich einem Benutzer zum ersten Mal Privilegien erteile?

Wie Sie sagten, in MySQL USAGE ist gleichbedeutend mit "keine Privilegien". Aus dem MySQL-Referenzhandbuch :

USAGE ist eine Möglichkeit, MySQL mitzuteilen, dass ein Konto existiert, ohne diesem Konto irgendwelche wirklichen Privilegien zu verleihen. Sie haben lediglich die Erlaubnis zur Nutzung dem MySQL-Server, daher USAGE . Er entspricht einer Zeile in `mysql`.`user` Tabelle ohne festgelegte Berechtigungen.

Der IDENTIFIED BY -Klausel gibt an, dass für diesen Benutzer ein Kennwort festgelegt wurde. Woher wissen wir, dass ein Benutzer derjenige ist, für den er sich ausgibt? Sie identifizieren sich selbst, indem sie das richtige Passwort für ihr Konto senden.

Das Kennwort eines Benutzers ist eines dieser Kontoattribute auf globaler Ebene, das nicht an eine bestimmte Datenbank oder Tabelle gebunden ist. Es befindet sich auch im `mysql`.`user` Tisch. Wenn der Benutzer keine anderen Rechte hat ON *.* , ihnen wird USAGE ON *.* gewährt und ihr Passwort-Hash wird dort angezeigt. Dies ist oft ein Nebeneffekt eines CREATE USER Erklärung. Wenn ein Benutzer auf diese Weise erstellt wird, hat er zunächst keine Privilegien, sodass ihm lediglich USAGE gewährt wird .