PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL db per WWW erstellen? 2



Stormsam
05-08-2003, 12:08
Hi @ all,

ich habe vor etwas längerer Zeit dank eurer HIlfe hier im Forum einen Script zum erstellen von MySQL Usern über einen Browser bekommen.

Nun habe ich mein SuSE Linux von 7.3 auf 8.2 upgedatet und somit auch meine MySQL Version und die PHP-Version.

Bei SuSE Linux 7.3 war es immer so, das der User keine Rechte hatte, nur auf seiner Datenbank konnte er arbeiten. Mit dem Script wurde aber immer nur ein User erstellt, sodass der sich immer eine Datenbank anlegen mußte.

Nun, nach dem Update kann sich der User keine Datenbank mehr anlegen! Obwohl er die selben Rechte hat wie vorher auch.
Woran kann das liegen?

Ich habe von Gaert diese Seite bekommen: http://www.mysql.com/doc/en/Adding_users.html

Allerdings sind das die Befehle für die mysql-konsole, ich wußte jetzt nicht, wie ich das in php schreibe.

Am besten wäre es, wenn beim anlegen des Users auch gleich eine Datenbank mit dem gleichen namen wie dem vom User, sodass er die nicht extra anlegen muss.

Das Script sieht so aus:


<?php

if ($send)

{

$server_id=mysql_connect("localhost", "root", "passwort");

mysql_select_db("mysql",$server_id);



$recid=mysql_query("INSERT INTO user SET

host='localhost',

user='$neueruser',

password=PASSWORD('$pwd1') ",$server_id);



echo mysql_error($server_id);

$recid=mysql_query("INSERT INTO db SET

host='localhost',

db='$neueruser',

user='$neueruser',

select_priv='Y',

insert_priv='Y',

delete_priv='Y',

update_priv='Y',

create_priv='Y',

alter_priv='Y',

drop_priv='Y' ",$server_id);

echo mysql_error($server_id);

$recid=mysql_query("FLUSH PRIVILEGES");

die("User wurde angelegt");

}

?>



<form name="formular" action="<?php $PHP_SELF?> method="post">
<input type="hidden" name="send" value="1">
Username:
<input type="text" name="neueruser" value=""><br>
Passwort:
<input type="password" name="pwd1" value=""><br>
<input type="submit" value="Senden">
</form>




Hoffe ihr könnt mir weiterhelfen.
Würd mich über eine Antwort freun.
MfG
Stormsam

I-Master
06-08-2003, 21:45
Bekanntester Fehler:

php.ini
-----------------------------
register_globals = off

Das bitte in on ändern. Könnte daran liegen.

sagi
06-08-2003, 22:09
Original geschrieben von I-Master
Bekanntester Fehler:

php.ini
-----------------------------
register_globals = off

Das bitte in on ändern. Könnte daran liegen.

Ich glaube, dass es besser ist das komplette Skript zu ueberarbeiten, da der Defaultwert ja auch seine Berechtigung hat.

mfg

c.

Stormsam
06-08-2003, 22:44
Hi!

Danke für eure Antwort!
Ich habe in der php.ini den eintrag register_globals auf on !

Trotzdem funktioniert das nicht :(

@sagi könntet ihr mir helfen es neu zu überarbeiten ?

MfG
Stormsam

Gaert
07-08-2003, 08:35
Original geschrieben von I-Master
Bekanntester Fehler:

php.ini
-----------------------------
register_globals = off

Das bitte in on ändern. Könnte daran liegen.

Solche Tips möchte ich in diesem Forum nicht sehen!
register_globals wird NIEMALS auf on gestellt.
Entweder man überarbeitet ein Skript, dass es mit off läuft oder man nimmt ein anderes!

quinte17
07-08-2003, 08:37
Original geschrieben von Gaert
Solche Tips möchte ich in diesem Forum nicht sehen!
register_globals wird NIEMALS auf on gestellt.
Entweder man überarbeitet ein Skript, dass es mit off läuft oder man nimmt ein anderes!

meine meinung ^^

jonasge
07-08-2003, 10:43
was ist den an diesen globalen variablen so schlimm ?

bzw. wo ist da das sicherheits rießiko ?

bzw. gibt es ein howto wie ich nicht mit diesen globalen variablen arbeiten kann ?



Gruss
jonas

Stormsam
07-08-2003, 11:00
hmm.... kann mir nicht jemand helfen das Skript zu überarbeiten:
Auf diese Seite stehen ja eigentlich alle Befehle: http://www.mysql.com/doc/en/Adding_users.html

Wie füge ich die in eine PHP Datein ein? Und welche Skripte von der Seite brauche ich nun genau, damit ein User erstellt wird der nur Rechte auf seiner Datenbank hat und eine Datenbank erstellt wird ?

help

MfG
Stormsam

jonasge
07-08-2003, 11:03
um mysql datenbanken zu verwalten nehme ich immer phpmyAdmin


Der ist gut, um User anzulegen benutze ich immer mysql_setpermissions


Jonas

Stormsam
07-08-2003, 11:14
Ich hätte gern ein Skript wo jeder einen MySQL User anlegen kann. Bei phpMyAdmin braucht man normalerweise ein Passwort. Bei phpMyAdmin ist das Problem, wenn ich das ohne Passwort mache hat ein User zu viele Rechte.

Es sollte ein Skript sein wie in meinem erstein Beitrag, womit man nur einen User anlegen kann ohne Passwortabfrage. Gut wäre es wenn dabei jetzt auch noch eine Datenbank angelet werden würde !

MfG
Stormsam

Stormsam
10-08-2003, 14:12
hi @ all,

thx für eure hilfe:

habe es jetzt dank gaert so hinbekommen:

mysql_query("CREATE DATABASE $neueruser");

so wird die tabelle erstellt und es ist egal das der user sich keine datenbank erstellen kann :D

MfG
Stormsam