Vraag Hoe verander ik de rechten voor de MySQL-gebruiker die al is gemaakt?


Ik begrijp hoe ik een nieuwe gebruiker met rechten kan maken, maar wat is de juiste manier om de rechten te wijzigen voor gebruikers die al zijn gemaakt?

We voeren een DB-audit uit en sommige gebruikers hebben veel meer toegang dan nodig is. Bovendien ken ik de wachtwoorden voor de meeste van deze MySQL-gebruikers niet, dus ik wil ze niet verwijderen en nieuwe maken.


59
2018-02-23 19:56


oorsprong




antwoorden:


Om gebruikers te vermelden:

select user,host from mysql.user;

Om rechten te tonen:

show grants for 'user'@'host';

Om rechten te wijzigen, herroepen. Zoals:

revoke all privileges on *.* from 'user'@'host';

Verleen dan de juiste rechten zoals gewenst:

grant SELECT,INSERT,UPDATE,DELETE ON `db`.* TO 'user'@'host';

Eindelijk, flush:

flush privileges;

De MySQL-documentatie is uitstekend:

http://dev.mysql.com/doc/refman/5.0/en/user-account-management.html


87
2018-02-23 20:02



Ik heb het gebruik van intrekking verkeerd begrepen. Bedankt. - Clutch
Nou zonder in te trekken, zullen het de privileges zijn van dublicates; - Sergey
mysql documentatie is bijna onleesbaar, dit antwoord is veel beter - Timo Huovinen
Ik denk (herroep alle privileges op . van 'gebruiker' @ 'host'; ) zou moeten zijn (alles intrekken) . van 'gebruiker' @ 'host';) Bedankt, - Nicholas
dit antwoord is duidelijk verkeerd "flush privileges" is niet van toepassing op privileges die met grant zijn ingesteld. het bovenstaande proces resulteert in het feit dat de gebruiker helemaal geen privilege heeft tussen het moment dat de intrekking en de subsidieaanvragen worden uitgevoerd en bovendien de subsidiecache zonder reden doorspoelt; dit zou werken als u regelmatig query's uitvoert tegen de mysql.user-tabel in plaats van met behulp van subsidies en als de server niet crasht of stopt tussen de query's. - skullnobrains