sql >> Database >  >> RDS >> Mysql

Waarom wordt een GRANT USAGE aangemaakt wanneer ik een gebruiker voor het eerst rechten toeken?

Zoals je al zei, in MySQL USAGE is synoniem met "geen privileges". Uit de MySQL-referentiehandleiding :

USAGE is een manier om MySQL te vertellen dat een account bestaat zonder echte privileges aan die account te verlenen. Ze hebben alleen toestemming om gebruiken de MySQL-server, vandaar USAGE . Het komt overeen met een rij in de `mysql`.`user` tafel zonder ingestelde privileges.

De IDENTIFIED BY clausule geeft aan dat er een wachtwoord is ingesteld voor die gebruiker. Hoe weten we of een gebruiker is wie hij zegt dat hij is? Ze identificeren zichzelf door het juiste wachtwoord voor hun account te verzenden.

Het wachtwoord van een gebruiker is een van die accountkenmerken op globaal niveau die niet aan een specifieke database of tabel zijn gekoppeld. Het leeft ook in de `mysql`.`user` tafel. Als de gebruiker geen andere rechten heeft ON *.* , ze krijgen USAGE ON *.* en hun wachtwoordhash wordt daar weergegeven. Dit is vaak een bijwerking van een CREATE USER uitspraak. Wanneer een gebruiker op die manier wordt aangemaakt, heeft deze in eerste instantie geen privileges, dus wordt hem slechts USAGE verleend .



  1. SQL Group BY, Top N Items voor elke groep

  2. Agent is geblokkeerd

  3. Hoe een voltooide polygoonpuntenfolder.draw op te slaan in mysql-tabel

  4. Adaptieve dynamische statistieken verslechteren de prestaties in 12.1.0.2 RAC