![](https://seccdn.libravatar.org/avatar/c561829b451bf6710a4a7823d67cbd69.jpg?s=120&d=mm&r=g)
Hallo! Ich hätte eine Verständnisfrage bzgl. Identifizeirung an einer MySQL über den Apache und PHP. Ich habe hier viele Datenbanken unter MySQL laufen. Bei allen findet eine Anmeldung in der Art if (!mysql_connect (DB_HOST, DB_USER, DB_PASSWORD)) { print "Access to database host denied, please check config.php file"; exit; } statt. Wie wird es z.B in PHP-Anmeldeformularen bewerkstelligt, daß Einträge in eine Tabelle geschrieben, obwohl der Benutzer ja nicht bei der MySQL bekannt ist? Authenitfiziert sich auch das Webserver irgendwie an der MySQL? Wie müssen die Berechtigungen auf der Datenbank aussehen? Eine Art Anonymous oder so? Unix-Rechte 742 für die entsprechende Tabelle? -- Gruß Andreas Meyer http://home.wtal.de/MeineHomepage
![](https://seccdn.libravatar.org/avatar/02fd9f2f4958e1f5e25024f02f6079eb.jpg?s=120&d=mm&r=g)
Hallo Andreas! Am Donnerstag, 20. Juni 2002 22:06 schrieb Andreas Meyer:
Ich hätte eine Verständnisfrage bzgl. Identifizeirung an einer MySQL über den Apache und PHP. Ich habe hier viele Datenbanken unter MySQL laufen. Bei allen findet eine Anmeldung in der Art if (!mysql_connect (DB_HOST, DB_USER, DB_PASSWORD)) {
print "Access to database host denied, please check config.php file"; exit; }
statt.
Wenn Benutzer etc. hart in config.php verdrahtet sind, dann kannst Du damit abfangen, daß/ob die DB down ist. Werden Benutzer etc. vorher auf einem Formular o.ä. abgefragt, dann kannst Du Dich mit diesen Parametern einloggen.
Wie wird es z.B in PHP-Anmeldeformularen bewerkstelligt, daß Einträge in eine Tabelle geschrieben, obwohl der Benutzer ja nicht bei der MySQL bekannt ist?
Naja der Benutzer muß schon eingerichtet sein auf MySQL. Oder Du arbeitest mit Shadow-User-Konzept, so daß der Anmeldebenutzer auf den Datenbankbenutzer umgemappt wird. Der Anmeldebenutzer dient dann nur zum Authentifizieren, die Datenbankzugriffe erfolgen über einen anderen (der Datenbank bekannten) Benutzer.
Authenitfiziert sich auch das Webserver irgendwie an der MySQL? Wie müssen die Berechtigungen auf der Datenbank aussehen? Eine Art Anonymous oder so?
s.o.
Unix-Rechte 742 für die entsprechende Tabelle?
Das versteh ich jetzt nicht. Ist ja IMHO unabhängig von UNIX Dateirechten. Hoffe ich konnte etwas helfen, Ralf -- Ralf Carlet -=- eMail: ralf@carlet.de
![](https://seccdn.libravatar.org/avatar/c561829b451bf6710a4a7823d67cbd69.jpg?s=120&d=mm&r=g)
Hi! Am Thu, 20 Jun 2002 23:33:09 +0200 schrieb Ralf Carlet:
Wenn Benutzer etc. hart in config.php verdrahtet sind, dann kannst Du damit abfangen, daß/ob die DB down ist. Werden Benutzer etc. vorher auf einem Formular o.ä. abgefragt, dann kannst Du Dich mit diesen Parametern einloggen.
z.B ein Anmeldeformular für Gitarrenunterricht. Ich gebe meine Daten ein und schicke ab. Was passiert? Ich werde damit ja nicht automatisch zu einem berechtigten Datenbankbenutzer. Ich denke hier müßte es doch einen Mechanismus geben, der die empfangenen Daten an einem berechtigten Datenbankadmin übergibt, damit sie in eine Tabelle geschrieben werden können? Gut, ich kenne PHP nicht, mich interessiert die Übergabe der Daten. Wird das innerhalb von PHP geregelt? Woher kommt das Recht in eine Tabelle zu schreiben?
Wie wird es z.B in PHP-Anmeldeformularen bewerkstelligt, daß Einträge in eine Tabelle geschrieben, obwohl der Benutzer ja nicht bei der MySQL bekannt ist?
Naja der Benutzer muß schon eingerichtet sein auf MySQL. Oder Du arbeitest mit Shadow-User-Konzept, so daß der Anmeldebenutzer auf den Datenbankbenutzer umgemappt wird. Der Anmeldebenutzer dient dann nur zum Authentifizieren, die Datenbankzugriffe erfolgen über einen anderen (der Datenbank bekannten) Benutzer.
Nein, über shadow oder wie auch immer funktioniert das ja erstmal nicht, ich als Gitarrenschüler bin dem System ja nicht bekannt. Ein Anmeldeformula ist direkt mir einer von jedem änderbaren Tabelle verknüpft?
Authenitfiziert sich auch das Webserver irgendwie an der MySQL? Wie müssen die Berechtigungen auf der Datenbank aussehen? Eine Art Anonymous oder so?
s.o.
Ich habe hier z.B: Warning: Host 'shiva.my.net' is not allowed to connect to this MySQL server in /var/www/htdocs/test/class1.php3 on line 12 Klar ist das eine DNS-Sache, mit 'localhost' geht das, aber offenbar muß sich auch der richtige Webserver, über den die Daten übermittelt werden, an der Datenbank authentifzieren?! -- Gruß Andreas Meyer http://home.wtal.de/MeineHomepage
![](https://seccdn.libravatar.org/avatar/ce986798439cd92cf0c051d9e264d185.jpg?s=120&d=mm&r=g)
Andreas Meyer schrieb am Fri, Jun 21, 2002 at 12:13:05AM +0200:
Gut, ich kenne PHP nicht, mich interessiert die Übergabe der Daten. Wird das innerhalb von PHP geregelt? Woher kommt das Recht in eine Tabelle zu schreiben?
Du legst innerhalb des PHP-Codes fest, in wessen Namen Dein Script auf die MySQL-Datenbank zugreift. Dieser Benutzer muß natürlich in MySQL existieren und die nötigen Zugriffsrechte auf die Datenbank besitzen. Das ganze hast Du auch schon selbst geschrieben: if (!mysql_connect (DB_HOST, DB_USER, DB_PASSWORD)) {usw.} Darin stehen - DB_HOST - für den Rechner, auf dem der MySQL-Dienst (also die Datenbank) läuft, - DB_USER - für die Kennung des Benutzers, in dessen Namen das PHP-Skript auf die Datenbank zugreift, - DB_PASSWORD - für das MySQL-Paßwort dieses Benutzers Der ganze "Witz" ist, daß a) MySQL eine eigene Benutzer- und Passwortverwaltung hat und b) die Sachen, die Du im Webinterface eingibst, in die Datenbank eingetragen werden und nicht etwa mit der eingegebenen Kennung auf diese zugreifen. Gruß & hth, Christian -- Christian Schmidt | Germany | christian@siebenbergen.de No HTML Mails, please!! http://lernst.de/zitieren/kriegst.de/antworten/
![](https://seccdn.libravatar.org/avatar/ae2425c1ae6a853ce926fb5d532fc801.jpg?s=120&d=mm&r=g)
Moin, Andreas Meyer:
Ich habe hier z.B: Warning: Host 'shiva.my.net' is not allowed to connect to this MySQL server in /var/www/htdocs/test/class1.php3 on line 12
Klar ist das eine DNS-Sache, mit 'localhost' geht das, aber offenbar muß sich auch der richtige Webserver, über den die Daten übermittelt werden, an der Datenbank authentifzieren?!
1. MySQL hat eine völlig eigene Benutzerverwaltung, die vom System unabhängig ist. Besorg dir mal phpMyAdmin, das ist supersimpel zu installieren, dann kannst du dir ganz bequem die MySQL-Internen Listen angucken. 2. Normalerweise besteht eine Zugriffsverwaltung ja aus Username+Passwort. Bei MySQL kommt aber noch der host dazu. Beispiel: Mein Server sei: 'localhost' 'bigboss.local' 'www.meinedomain.foo' Alles gleichzeitig - geht ja. Als User existiert "ratti". Um mich überhaupt auf MySQL zugreifen zu lassen, muß ein MySQL-User "ratti" eingerichtet werden, der mit dem normalen User "ratti" in keinster Weise zusammenhängt. Dieser MySQL-User "ratti" wir eingerichtet mit Name, Password und Host(!): "ratti", "geheim", "localhost" Der Witz ist: Wenn ich jetzt einen Zugriff versuche, indem ich mich als "ratti", "geheim", "bigboss.local" einlogge, dann klappt das nicht, auch wenn per DNS localhost und bigboss.local auf den gleichen Rechner verweisen. Ich müsste für Vollzugriff drei User anlegen: "ratti", "passwort" und der jeweilige Host. Genau das macht man aber nicht. Der Webserver und MySQL liegen ja i.d.R. auf dem gleichen Rechner. Also genügt es völlig, "localhost" freizuschalten. Dann kommt niemand von draussen an deinen Server, selbst mit richtigem Namen und Passwort nicht. Gruß, Ratti -- http://www.gesindel.de | Fontlinge | Die Schriftenverwaltung für Windows
![](https://seccdn.libravatar.org/avatar/5dc5ff14cc8afd36f69486dbbaad53b3.jpg?s=120&d=mm&r=g)
Hallo Andreas, ich muß gestehen, daß ich Dich nicht wirklich verstanden habe. Du mußt den Benutzernamen, das Passwort und natürlich den Datenbanknamen angeben, mit dem sich PHP an die MySQL DB hängen soll. Das hat nix mit Unixdateirechten zu tun, schau Dir mal das MySQL Handbuch und die Struktur der Tabellen Host und User der MySQL Datenbank (diese DB heisst wirklich MySQL) an. Weitere Infos gibts im PHP Handbuch und bei der von Dir genutzten Suchmaschine. Wenn Du noch Probleme hast, dann kannst Du mich gerne nochmal fragen. Gruß Sebastian www.wolfgarten.com
participants (5)
-
Andreas Meyer
-
Christian Schmidt
-
Ralf Carlet
-
ratti
-
Sebastian Wolfgarten