MySQL Controleer of de gebruiker bestaat en laat het – Stack Overflow

Um. Waarom al de complicaties en trucs?

In plaats van met behulp van DROP USER. U kunt gewoon de gebruiker uit de mysql.user tabel (die een fout niet te gooien als de gebruiker niet bestaat) te verwijderen, en dan flush privileges om de wijziging toe te passen.

Ik had het mis. Het is niet veilig voor de gebruiker als dat te verwijderen. U hoeft te DROP USER gebruiken. Omdat het mogelijk is om mysql opties in te stellen om niet-gebruikers automatisch via subsidies (een optie die ik gebruik), ik zou nog steeds niet dat truc aanraden. Hier is een snipet van een opgeslagen procedure die werkt voor mij:

antwoordde 20 juli ’15 op 19:11

Heeft delen waarom het "is niet veilig". Veilig voor wie op welke manier? – dagelf 19 augustus ’16 op 16:48


Ter informatie, dit is een betere oplossing.

De volgend SP zal u helpen om de gebruiker ‘tempuser’ verwijderen @ ‘%’ door het uitvoeren van CALL DropUserIfExistsAdvanced ( ‘tempuser’, ‘%’);

Als u wilt dat alle gebruikers de naam ‘tempuser’ verwijderen (zeg ‘tempuser’ @ ‘%’. ‘Tempuser’ @ ‘localhost’ en ‘tempuser’@’192.168.1.101’) uit te voeren, zoals SP CALL DropUserIfExistsAdvanced ( ‘tempuser’, NULL ); Dit zal alles te wissen gebruikers genaamd tempuser. ernstig.

Nu neem dan een kijkje op bovengenoemde SP DropUserIfExistsAdvanced:

BEL DropUserIfExistsAdvanced ( ‘tempuser’, ‘%’); de gebruiker ‘tempuser’ verwijderen @ ‘%’

BEL DropUserIfExistsAdvanced ( ‘tempuser’, ‘192.168.1.101’); verwijderen gebruiker ‘Tempuser’@’192.168.1.101’

BEL DropUserIfExistsAdvanced ( ‘tempuser’, NULL); voor alle gebruikers met de naam ‘tempuser’ te verwijderen (bijv. zeggen ‘tempuser’ @ ‘%’. ‘tempuser’ @ ‘localhost’ en ‘tempuser’@’192.168.1.101’)

antwoordde 19 september ’12 om 20:08

waarom naar beneden stem. – rajukoyilandy 3 juli ’14 op 13:11

Ik schreef deze procedure ge├»nspireerd door antwoord Cherian’s. Het verschil is dat in mijn versie van de gebruiker naam is een argument van de procedure (en niet hardcoded). Ik ben ook bezig met een veel noodzakelijke FLUSH VOORRECHTEN na een val van de gebruiker.

Bron: stackoverflow.com

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

zestien − vier =