Avatar billede dank Nybegynder
14. juli 2003 - 16:18 Der er 10 kommentarer og
1 løsning

Sletter mysql database bruger totalt og helt og aldeles

:o) Hvordan sletter jeg en bruger af databasen.

Hvis jeg skal slette hele databasen, gør jeg jo noget i denne retning:

DROP database blahblah

Er der en tilsvarende måde at slette en bruger?

Jeg har root adgang og skal bruge det i et php script, hvis nogen evt. også ved hvordan det kan gøres.
Avatar billede ahv Nybegynder
14. juli 2003 - 16:22 #1
Sådan her skriver PHPMyADmin den selv, et eksempel med en bruger der hedder test ->

DELETE FROM `user` WHERE `User` = "test" AND `Host` = "localhost";

DELETE FROM `db` WHERE `User` = "test" AND `Host` = "localhost";

DELETE FROM `tables_priv` WHERE `User` = "test" AND `Host` = "localhost";

DELETE FROM `columns_priv` WHERE `User` = "test" AND `Host` = "localhost";
Avatar billede freet Nybegynder
14. juli 2003 - 16:25 #2
<?
    mysql_query("DELETE FROM tabel WHERE data='data'");
?>
Avatar billede dank Nybegynder
14. juli 2003 - 17:24 #3
ahv> jeg har lige prøvet således, men det virker ikke..

kan det være min syntax der er forkert?

$insertSQL = "DELETE FROM `user` WHERE `User` = '$bruger' AND `Host` = 'localhost';";
mysql_query($insertSQL);
$insertSQL = "DELETE FROM `db` WHERE `User` = '$bruger' AND `Host` = 'localhost';";
mysql_query($insertSQL);
$insertSQL = "DELETE FROM `tables_priv` WHERE `User` = '$bruger' AND `Host` = 'localhost';";
mysql_query($insertSQL);
$insertSQL = "DELETE FROM `columns_priv` WHERE `User` = '$bruger' AND `Host` = 'localhost';";
mysql_query($insertSQL);
$insertSQL = "FLUSH PRIVILEGES;";
mysql_query($insertSQL);
Avatar billede ahv Nybegynder
14. juli 2003 - 17:28 #4
Prøv ->

$insertSQL = "DELETE FROM `user` WHERE `User` = '$bruger' AND `Host` = 'localhost'";
mysql_query($insertSQL) or die(mysql_error());
$insertSQL = "DELETE FROM `db` WHERE `User` = '$bruger' AND `Host` = 'localhost'";
mysql_query($insertSQL) or die(mysql_error());
$insertSQL = "DELETE FROM `tables_priv` WHERE `User` = '$bruger' AND `Host` = 'localhost';";
mysql_query($insertSQL) or die(mysql_error());
$insertSQL = "DELETE FROM `columns_priv` WHERE `User` = '$bruger' AND `Host` = 'localhost'";
mysql_query($insertSQL) or die(mysql_error());
$insertSQL = "FLUSH PRIVILEGES;";
mysql_query($insertSQL) or die(mysql_error());
Avatar billede thomasledet Nybegynder
15. juli 2003 - 14:25 #5
det er nu noget nemmere blot at bruge revoke...

REVOKE ALL PRIVILEGES ON *.* FROM brugernavn

http://www.mysql.com/doc/en/GRANT.html
Avatar billede dank Nybegynder
15. juli 2003 - 18:34 #6
thomasledet> Efterlader den ikke en masse om brugeren i forskellige tabeller?
Avatar billede thomasledet Nybegynder
15. juli 2003 - 19:15 #7
det burde den ikke... flush privileges burde gøre arbejdet færdigt.

om den så efterlod noget som, så ville brugeren stadig være helt og aldeles ubrugelig og det ville derfor intet betyde.
Avatar billede thomasledet Nybegynder
15. juli 2003 - 19:20 #8
fra http://www.mysql.com/doc/en/GRANT.html

"If you grant privileges for a user/hostname combination that does not exist in the mysql.user table, an entry is added and remains there until deleted with a DELETE command. In other words, GRANT may create user table entries, but REVOKE will not remove them; you must do that explicitly using DELETE."

men som sagt: brugeren er ubrugelig og har ingen effekt på noget som helst data. det skulle kun være for menneskelig småneurotisk "god ordens skyld" at man fjerner den helt - og der er en stak delete-statements tilsyneladende vejen.
Avatar billede dank Nybegynder
15. juli 2003 - 23:27 #9
ahem... ja... Men jeg vil nu nok forsøge at få det til at virke med ahv's eksempel...

Med 15k+ brugere vil jeg ikke have efterladenskaber.. derfor subj :o)
Avatar billede dank Nybegynder
17. juli 2003 - 16:53 #10
takker til jer begge.. ahv's løsning løber med guldet.

thomasledet for ingen point, da den ikke var tilstrækkelig, jg. subj. Sorry :)
Avatar billede thomasledet Nybegynder
18. juli 2003 - 11:47 #11
jeg overlever (med lidt held) nok :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester