Page 1 of 1

Brauche hilfe bei anlegen von usern

PostPosted: 09. July 2004 10:19
by luxor86
HI
Ich brauche mal eure hilfe bei 2 fragen

1:
Ich habe grade als root in phpMyAdmin einen neuen User erstellt.
Leider hat diese User die gleiche Recht wie der root.
Kann also neue User anlegen, Recht verwalten, MySQL neu starten, MySQL-Laufzeit-Informationen anzeigen lassen, MySQL-System-Variablen anzeigen, Er kann alle MySql Datenabnken sehen usw..
Das ganze soll er nicht.
Er soll einfach nur User sein und eigene Datenabnken anlegen können und auch nur auf die zugreifen können.
Wie mache ich das den??

2:
Ich möchte es so einstellen das ein User max. 1 Datenabnk erstllen kann.
Wie mache ich das?


Danke schon mal für eure hilfe

Philipp

P.S. Die FAQ habe ich nartürlich schon angeguckt aber geholfen hat sie nicht.

PostPosted: 09. July 2004 11:00
by Wiedmann
Er soll einfach nur User sein und eigene Datenabnken anlegen können
...
Ich möchte es so einstellen das ein User max. 1 Datenabnk erstllen kann.

Den User Datenbanken anlegen zu lassen ist wohl nicht das was du willst...

1. Schritt:
Du (root) legst EINE Datenbank an. Name idealerweise so wie der Username.

Er soll einfach nur User sein ... und auch nur auf die zugreifen können
...
Wie mache ich das?

2. Schritt:
Du legst einen Benutzer an: phpMyAdmin --> Rechte --> Neuen Benutzer hinzufügen

3.Schritt:
Du enziehst dem in Schritt 2 angelegtem Benutzer ALLE globalen Rechte und gibst ihm auf die in Schritt 1 angelegte Datenbank alle Rechte für Daten und Struktur: phpMyAdmin --> Rechte --> Benutzer --> Bearbeiten

PostPosted: 09. July 2004 11:10
by luxor86
HI
Habe es so gemacht aber der User kann immer noch auf alle MySql Datenbanken zugreifen und neu erstllen.


Philipp

PostPosted: 09. July 2004 11:20
by Wiedmann
Dann hast du dem Benutzer garantiert nicht die globalen Rechte entzogen, oder es ist der fasche Benutzer.

Was wird denn auf der Seite "Benutzer --> Bearbeiten" alles angezeigt?

PostPosted: 09. July 2004 11:48
by luxor86
HI
Jo das war es.
Dankt für dein hilfe.
Aber jezt wird es schwer.
Ich will jezt ein script erstllen was erst eine MySql Datenbank erstellt dan ein User erstellt und es dan wirder so einstellt das Der erstellte User nur auf die MySql Datenbank zugreifen kann.
Wie mach ich das am besten?
Oder gibt es so ein script?

Philipp

PostPosted: 09. July 2004 12:02
by Wiedmann
Was heisst schwer? Das Script muß ja nur das selbe machen, was du gerade auch gemacht hast.
1. Mit CREATE DATABASE eine Datenbank anlegen.
2. Mit GRANT den Benutzer anlegen und Rechte vergeben.

Und das ganze halt über die MySQL-Funktionen von PHP.

Geben tut es sowas bestimmt in einem Script-Archiv...

PostPosted: 10. July 2004 20:15
by luxor86
HI
Das mit den automatisch anlegen von user geht jezt wunder paar.
Nur einlogen können sie sich nicht.

http://luxor-wpii.dyndns.org/phpmyadmin/index.php

Benutzername: luxor
Passowrt: 159159

Geht aber nicht warum??
Bitte helft mir

Philipp

PostPosted: 10. July 2004 20:44
by Wiedmann
Du hast jetzt aber nicht den GRANT benutzt um den Benutzer anzulegen?

Jedenfalls hat hier noch ein "FLUSH PRIVILEGES" gefehlt.

PostPosted: 10. July 2004 21:04
by luxor86
HI
Ich habe hier den code

Code: Select all
  mysql_query("CREATE DATABASE $username");
  mysql_query("GRANT USAGE ON * . * TO $username@'%' IDENTIFIED BY '".$pwd."'");
  mysql_query("GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER,FLUSH ON $username . * TO $username@'%'");


Wo muss den da dieses FLUSH PRIVILEGES hin??

Philipp

PostPosted: 10. July 2004 21:47
by Wiedmann
Also das sollte langen damit es sofort geht:
Code: Select all
mysql_query("CREATE DATABASE `$username`;");
mysql_query("GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `$username`.* TO '$username'@localhost IDENTIFIED BY '$pwd';");


Ansonsten könnte man noch ein:
mysql_query("FLUSH PRIVILEGES;");
hinterherschicken. Sollte mit dem oben aber nicht nötig sein....

PostPosted: 11. July 2004 12:47
by luxor86
HI
Ja wunderbar es geht jezt.
Vielen Dank für dein Hilfe.
Unter http://luxor-wpii.dyndns.org/sql/login.html kann man sich jezt testen. Das ganze wird eine FReeMySql Projekt

Philipp

PostPosted: 15. July 2004 16:25
by luxor86
HI
Ich brauche noch mal hilfe.

Ich habe jezt da den code:


Code: Select all
if($numrows==0 && !empty($nachname) && !empty($vorname) && !empty($email) && !empty($username)){
  mysql_query("CREATE DATABASE `$username`;");
  mysql_query("GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `$username`.* TO '$username'@localhost IDENTIFIED BY '$pwd';");


Wenn der User erstellt wird.
Wird als host immer localhost eingetragen aber da soll ein % hin für extrernen Zugrief auf die DB. Wie stelle ich das an?

Philipp

Hab ich das richtig kappiert?

PostPosted: 20. August 2004 18:38
by goe105
Hi, was ich hier gelernt habe .... ok
Keine Globale Rechte für einen normalen User, sondern Rechte nur für
seine eigene Datenbank.
Kann dann dieser User das gleiche PHPMYADMIN aufrufen, sein
Login eingeben, dass ich ihm gegeben habe eingeben, und sieht
dann " n u r " seine Datenbank ??

Danke für Feedback

PostPosted: 20. August 2004 19:39
by Wiedmann
Ja