PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : phpmyadmin und MySQL



piet
20.07.02, 16:58
Hiho,

Ich möchte, dass der Benutzer nur seine Datenbanken angezeigt bekommt, und nicht auch die von den anderen Usern. Ich weiss, dass man in phpmyadmin das 'only-db' setzen kann. Wenn der Benutzer aber sein eigenes phpmyadmin benutzt, nützt das only-db auch nichts.

Also meine Frage : Wie kann man die anderen Datenbanken verstecken ?

grüsse,
piet

corresponder
20.07.02, 17:22
also ich hab das hier so gelöst, dass es einen superuser (root) gibt und der darf alles
und dann bekommt halt jeder user ein passwort und kann sich damit seine datenbank angucken und editieren.....
und unter phpadmin lässt sich dass voll easy einrichten......

gruss

c.

piet
20.07.02, 17:31
das ist ja schön und gut, aber sehen deine Benutzer in phpmyadmin nur ihre eigene DB , oder auch die Namen der anderen DB's(natürlich ohne Zugriffsrecht).

Ich will halt nur die DB-Namen anzeigen lassen, die auch dem Benutzer gehören.

ChengFU
20.07.02, 17:44
Ich vermute, dass das nicht möglich sein wird. Ein "SHOW DATABASES" ist unter MySQL für jeden Benutzer möglich, die Zugriffsrechte werden erst geprüft, wenn du auf eine bestimmte Datenbank zugreifen willst.

corresponder
20.07.02, 17:58
natürlich sehen die user nur ihre eigene datenbank

also das ist ein webserver und kein homeserver.......
obwohl, auf meinem homeserver isses auch so.....


gruss

c.

corresponder
20.07.02, 17:59
das ist ja nochmal was anderes, mysql und php an sich sicherer zu machen......
hat aber in meinen augen nicht unbedingt was mit phpadmin zu tun...also bei mir nicht...


:)

piet
20.07.02, 18:59
@corresponder

Da bei mir die Benutzernamen genauso heissen wie die Datenbanken, kann jeder einsehen, wer alles Kunde ist und das ist wirklich nicht schön.

Aber ich weiss jetzt, warum bei mir jeder Benutzer alle DB's sehen konnte. Ich habe mal ein neueres phpmyadmin genommen und folglich konnte ich auch nur meine DB's sehen Also liegst an dem alten phpmyadmin.
Leider löst das nicht mein Problem. Jeder der noch ein altes hat, spielt es drauf und kann wieder alles sehen. Naja, damit muss ich wohl halt leben.

trotzdem Vielen Dank

corresponder
20.07.02, 19:05
ich hatte in der letzten zeit - stand in der CT - damit zu tun unseren Webserver sicherer zu machen und ok, unsere user dürfen eh kein phpadmin installieren oder besser, sie sind zu doof dazu...hehe
die benutzen unseres....
nur dann muss mensch natürlich noch die "Safe_Mode" Geschichte angucken....
oder das ganze halt als cgi installieren....
damit da niemand rummgucken kann...
wobei, wenn du die user nicht im klartext verwaltest und derjenige der rumguckt nur "acess denied" bekommt - gehts noch.......

ChengFU
21.07.02, 21:03
Die einzige Lösung dürfte tatsächlich die sein, die Datenbank-Namen anders zu vergeben (Kundennummer o.ä.).

Selbst wenn du einen neuen phpMyAdmin benutzt, kann der User direkt als Query oder in einem selbstgeschriebenen Skript alle Datenbanken auflisten lassen - unabhängig von den Zugriffsrechten auf die einzelne DB.

stefaan
21.07.02, 21:13
Servus!

Steht in der phpMyAdmin-Doku! :D

Grüße, Stefan

stefaan
22.07.02, 10:38
Servus!

Es gab da mal einen Thread in de.comp.datenbanken.mysql dazu:
Nicht verzagen, google fragen :D (http://groups.google.at/groups?hl=de&lr=&ie=UTF-8&threadm=3CE235D7.C2103415%40saale-net.de&rnum=1&prev=/groups%3Fq%3Dphpmyadmin%2Bdatenbanken%2Bverstecken %26hl%3Dde%26lr%3D%26ie%3DUTF-8%26selm%3D3CE235D7.C2103415%2540saale-net.de%26rnum%3D1)

Grüße, Stefan

[-Cyber-]
22.07.02, 12:44
mit diesem sql statement kannt du user anlegen und ihnen nur die rechte geben damit sie nur auf ihre db können.



INSERT INTO user (Host, User, Password, Select_priv, Insert_priv,
Update_priv, Delete_priv, Create_priv, Drop_priv,
Reload_priv, Shutdown_priv, Process_priv,
File_priv, Grant_priv, References_priv, Index_priv,
Alter_priv)
VALUES ('localhost', 'USERNAME', PASSWORD('PASSWORT'), 'N', 'N',
'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N',
'N', 'N')
INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Grant_priv, References_priv, Index_priv, Alter_priv)
VALUES ('localhost', 'DATENBANK', 'USERNAME', 'Y', 'Y', 'Y', 'Y','Y', 'Y', '', '', '', '')


die variablen "localhost, username und passwort" einfach dementsprechend anpassen.

piet
22.07.02, 14:01
@ Cyber : ich weiss wie die Rechtevergabe funktioniert ! sonst könnte ja jeder in den DB's rumackern

@ stefaan : Danke für den Link

Ein paar Worte für die Nachwelt:

Man kann den SQL Befehl SHOW DATABASES in mysql zwar ausschalten
mit --safe-show-database (siehe : http://www.mysql.com/doc/P/r/Privileges_options.html) aber es kann zu Anzeigeschwierigkeiten der DB's in phpmyadmin kommen.
Bisher hatte ich aber mit phpmyadmin 2.2.6 keine Probleme.

[-Cyber-]
22.07.02, 19:19
hmm ich meinte damit nicht die rechtevergabe aber wenn du die user mit vorigem mysqlstatement anlegst, dann können sie sich nur mit ihrem user/pass in den phpmyadmin einloggen und sehen auch nur ihre databases und keine anderen, dachte das es das ist was du eigentlich wolltest