PHP & MySQL Engineering

MySQL - Benutzerrechte exportieren

Ich wollte heute Morgen die Benutzerrechte (Privileges) der MySQL-Benutzerkonten eines Servers exportieren, und war recht erstaunt darüber, zu diesem Thema weder einen Eintrag im MySQL-Handbuch, noch eine Beschreibung über Google finden zu können.

Ich habe mich also drangesetzt, und nach einiger Überlegung, folgendes Script geschrieben:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
 
//Mit Datenbank verbinden
if ( ($db_handle = mysql_connect('HOST', 'BENUTZERNAME', 'PASSWORT')) === false)
{
        die(mysql_error());
}
 
//Benutzer auslesen
$sql = "SELECT CONCAT(\"'\",User, \"'@'\", Host, \"'\") AS username, CONCAT(\"'\", Password, \"'\") AS password FROM mysql.user";
$query = mysql_query($sql, $db_handle) or die(mysql_error($db_handle));
 
while ($get = mysql_fetch_object ($query))
{
        //Query zur Erstellung des Benutzers
        echo "CREATE USER ".$get->username." IDENTIFIED BY ".$get->password.";\n";
 
        //Benutzerrechte auslesen
        $ssql = "SHOW GRANTS FOR ".$get->username;
        $squery = mysql_query($ssql, $db_handle) or die(mysql_error($db_handle));
 
        while ($srow = mysql_fetch_array ($squery))
        {
                //Query zur erstellung der Benutzerrechte
                echo $srow[0].";\n";
        }
}
?>

Wie kann man die Benutzerrechte über dieses Script exportieren?

  1. Den Quelltext in einer Datei, zum Beispiel export_privileges.php, speichern
  2. Die Rechte exportieren: export_privileges.php > privileges.sql
  3. Die Rechte importieren: mysql < privileges.sql
  4. Die Rechte neu laden: mysql -e "FLUSH PRIVILEGES;"

Zusammenfassung:

1
2
3
claude@localhost ~ $ export_privileges.php > privileges.sql
claude@localhost ~ $ mysql -uBENUTZERNAME -pPASSWORT -hHOST < privileges.sql
claude@localhost ~ $ mysql -uBENUTZERNAME -pPASSWORT -hHOST -e "FLUSH PRIVILEGES;"

Fertig Icon Wink in MySQL - Benutzerrechte exportieren

 

Kommentare: 2

Kommentar hinterlassen »

 
 
 

vielen lieben dank! das script macht seine arbeit sehr gut. anfangs war ich zwar skeptisch wegen den passwörtern, hat aber wunderbar geklappt.

 
 

[...] Zum Kopieren von Datenbanknutzer samt Berechtigungen gibt es dieses tolle Script. [...]

 
 

Kommentar hinterlassen

 
(Wird nicht veröffentlicht)
 
(rel="follow")
 
Kommentar *
 
Eins + Sechs =