phpbar.de logo

Mailinglisten-Archive

[php] MySQL-Sicherheit

[php] MySQL-Sicherheit

Wolfgang Drews php_(at)_phpcenter.de
Sat, 5 Jan 2002 17:25:40 +0100


> ich richte gerade meine erste Datenbank ein und brauche Hilfe bzgl. der
> Rechtevergabe. Wie richte ich Zugriffsrechte für "fremde" Nutzer ein, die
> meine Datenbank abfragen möchten und dürfen. Ich gebe denen ja
> nicht "mein"
> Passwort bzw. schreibe dies in ein PHP-Script.

aaalso. Da würde sich wirklich ein Blick in das MySQL-Manual lohnen, da
dieser Thematik in jedem MySQL-Buch ein Kapitel gewidmet wird. Dabei ist
das alles gar nicht schwer. Bei MySQL kannst du die Rechtevergabe bis auf
die Spalte genau einstellen, wenn du weisst wie. Zuständig für die Rechte
einer MySQL-Datenbank ist die Datenbank mit dem Namen "mysql". Dort findest
du 6 Tabellen, in denen Rechte vergeben werden, und zwar in jeder Tabelle
etwas feiner.

user-Tabelle:
=============
 enthält Berechtigungen für Benutzer, die in mehrere Spalten(Rechte)
 aufgeteilt wird. Werden hier einem Benutzer Rechte vergeben, so
 gelten Sie GLOBAL für alle Datenbanken.

db-Tabelle:
===========
 enthält Berechtigungen für alle Datenbanken des MySQL-Servers. Rechte,
 die hier erteilt werden, sind nur für eine bestimmte Datenbank gültig.

host-Tabelle:
=============

 verwaltet gemeinsam mit der db-Tabelle den Zugang zum MySQL-Server,
 indem hier die Anzahl der Hosts beschränkt werden kann.

colum-priv & tables-priv:
=========================

 verwaltet Berechtigungen für Spalten und Tabellen einer Datenbank. Hier
 können Berechtigungen eines Benutzers bis auf die Spalte genau festgelegt
 werden.

Du siehst, es wird hier ganz klar zwischen globalen- und objekt-
Berechtigungen unterschieden. Empfehlenswert ist es, von oben nach
unten durchzuwandern, dass heisst auf der globalen Ebene so wenig
wie möglich an Rechten zu vergeben, sondern diese auf db/host oder eben
auch tabelle/spalte-Ebene zu erteilen.


> Geht das mit phpmyadmin ? Habe da nichts gefunden !
ja. --> klicke die mysql-DB an.
> Geht das auch ohne den MySQL-Monitor (auf der Kommandozeilen-Ebene) ?
ja. natürlich. obwohl der toll ist :)

mit bestem Gruß

-Wolfgang

--
Deutscher PHP-Knotenpunkt Dynamic Web Pages: http://www.dynamicwebpages.de
Scripte, Tutorials, Installation, Bücher, BestofGML, Manual, Links uvm.
PHP 4: Dynamische Webauftritte professionell realisieren: http://php-buch.de


php::bar PHP Wiki   -   Listenarchive