[mySQL] User für MySQL-DB erstellen

D

David B.

Gast
User für MySQL-DB erstellen

Hallo.
Ich bin noch Anfänger in PHP bzw. MySQL ... muss euch daher mal paar Fragen stellen:

Also.
Ich schreibe gerade ein Script für eine Registrierungsseite. Ich bin mittlerweile so weit gekommen, dass eine Verbindung zum MySQL-Server aufgebaut wird mit dem root-Nick und root-Password und eine Datenbank erstellt wird.
Was mir jetzt noch fehlt ist ein Script, das einen neuen SQL-User erstellt, der aber nur Zugriff auf diese eine Datenbank hat.
Der Grundgedanke des ganzen ist ein FTP-Server, den ich bei mir zu Hause installiert habe und auf dem sich andere Leute registrieren können. Jedem dieser User soll eine Datenbank zur Verfügung stehen, die genauso heißt wie der User selbst.
Könnt ihr mir da weiterhelfen?
Mein Script sieht bisher so aus:

$db_server = "localhost";
$db_user = "root";
$db_passwort = "root_pass";

$db_name = $nickname;

$db = @MYSQL_CONNECT($db_server,$db_user,$db_passwort) or die ("Konnte keine Verbindung zur Datenbank herstellen");
if (mysql_create_db ($db_name))
echo "Datenbank $db_name wurde erstellt!";

Vielen Danke im vorraus ;)
greeze, David
 
AW: User für MySQL-DB erstellen

Auf die Datenbank soll nur der User Zugriff haben, der sich registriert.
Root-Username: $db_user: "root"
Root-Passwort: $db_passwort: "root_pass"

Variablen für die Registrierung:
Username: $user_nick
User-Passwort: $user_pass
 
AW: User für MySQL-DB erstellen

So. Jetzt hab ich mich mal registriert.
Der letzte Eintrag von "Unregistriert" war von mir.
greeze, David
 
AW: User für MySQL-DB erstellen

Hallo.
Danke schonmal für deine Hilfe ;)

Mein Script sieht jetzt schonmal wie folgt aus:

#----- MySQL-Datenbank für User erstellen -----
echo "<b>Verbindung zum Datenbank-Server: </b>";
if($link = mysql_connect($host,$root_user,$root_pass))
{ echo "Verbindung wurde erfolgreich aufgebaut. <br>"; }
else
{ echo "Verbindung konnte nicht hergestellt werden: ". mysql_error() ."<br>"; }

echo "<b>MySQL-Datenbank: </b>";
if (mysql_query('CREATE DATABASE '.$nickname))
{ echo "Datenbank ".$db_name." wurde erstellt! <br>"; }
else
{ echo "Datenbank ".$db_name." konnte nicht erstellt werden. ". mysql_error() ."<br>"; }


#----- MySQL-Account für User erstellen und Rechte vergeben-----

$db_selected = mysql_select_db('mysql', $link);
if (!$db_selected)
{ die ('Kann die Datenbank "mysql" nicht benutzen: ' . mysql_error() ."<br>");}

/* MySQL-Account */
echo "<b>MySQL-Account: </b>";
$query = 'INSERT INTO user (Host,User,Password) VALUES("'.$host.'","'.$nickname.'",password("'.$password.'")); ';
if(mysql_query($query))
{ echo "Das MySQL-Account wurde erstellt. <br>"; }
else
{ echo "Das MySQL-Account konnte nicht erstellt werden: ". mysql_error() ."<br>";}

/* MySQL-Rechte */
echo "<b>MySQL-Rechte: </b>";
$querys = 'INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES("'.$host.'","'.$nickname.'","'.$nickname.'","Y","Y","Y","Y","Y","Y"); ';
if(mysql_query($querys))
{ echo "Die MySQL-Rechte wurden gesetzt. <br>"; }
else
{ echo "Die MySQL-Rechte konnten nicht gesetzt werden: ". mysql_error() ."<br>";}

---------------------------------

So weit, so gut. Der User wurde erstellt und die Rechte gesetzt. Aber wenn ich dann das MySQL Control Center öffne und mir den User ansehe, hat dieser kein Passwort und keinen Zugriff auf irgendwelche Datenbanken. Ich weiß nicht woran das liegt.
Kann mir einer helfen?
Wie gesagt: Ich bin noch in den Anfängen mit der PHP und MySQL-Programmierung.... habe bisher nur HTML und JavaScript gemacht.

greeze, David
 
Oben