Mysql
 sql >> Database >  >> RDS >> Mysql

Perché viene creato un GRANT USAGE la prima volta che concedo i privilegi a un utente?

Come hai detto, in MySQL USAGE è sinonimo di "nessun privilegio". Dal Manuale di riferimento di MySQL :

USAGE è un modo per dire a MySQL che esiste un account senza conferire alcun privilegio reale a quell'account. Hanno semplicemente il permesso di utilizzare il server MySQL, quindi USAGE . Corrisponde a una riga nel `mysql`.`user` tabella senza privilegi impostati.

Il IDENTIFIED BY clausola indica che è stata impostata una password per quell'utente. Come facciamo a sapere che un utente è chi dice di essere? Si identificano stessi inviando la password corretta per il proprio account.

La password di un utente è uno di quegli attributi dell'account a livello globale che non sono legati a un database o una tabella specifici. Vive anche nel `mysql`.`user` tavolo. Se l'utente non dispone di altri privilegi ON *.* , viene loro concesso USAGE ON *.* e l'hash della loro password viene visualizzato lì. Questo è spesso un effetto collaterale di un CREATE USER dichiarazione. Quando un utente viene creato in questo modo, inizialmente non ha privilegi, quindi gli viene semplicemente concesso USAGE .