sql >> Databasteknik >  >> RDS >> Mysql

Varför skapas en GRANT USAGE första gången jag beviljar en användare privilegier?

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 .



  1. Få nästa automatiska ökning

  2. En databasmodell för en onlineundersökning. Del 4

  3. En introduktion till TimescaleDB

  4. Returnera parametrarna för en lagrad procedur eller användardefinierad funktion i SQL Server (T-SQL-exempel)