Som du sa, i MySQL USAGE
är synonymt med "inga privilegier". Från MySQL-referensmanualen
:
USAGE
är ett sätt att berätta för MySQL att ett konto existerar utan att ge det kontot några riktiga privilegier. De har bara tillstånd att använda MySQL-servern, därav USAGE
. Det motsvarar en rad i `mysql`.`user`
tabell utan privilegier inställda.
IDENTIFIED BY
klausul anger att ett lösenord är inställt för den användaren. Hur vet vi att en användare är den de säger att de är? De identifierar själva genom att skicka rätt lösenord för sitt konto.
En användares lösenord är ett av de kontoattribut på global nivå som inte är knutet till en specifik databas eller tabell. Den finns också i `mysql`.`user`
tabell. Om användaren inte har några andra privilegier ON *.*
, de beviljas USAGE ON *.*
och deras lösenords-hash visas där. Detta är ofta en bieffekt av en CREATE USER
påstående. När en användare skapas på det sättet har de till en början inga privilegier så de får bara USAGE
.