Mailinglisten-Archive |
Michael Wolf wrote: > > hallo, > > wie setzt man am besten (effektivsten) die zugriffsrechte? > in welcher tabelle; db, user oder host, oder alle in kombination? > dürfen sich rechte aus den tabellen db, user und host überschneiden? > wie wird das dann ausgelegt? > > es geht hier lediglich um eine lokale datenbank, mehr oder weniger privat, > also nix groszes, nur interessieren tuts mich schon. > > danke und gruss michael > > --- > *** Abmelden von dieser Mailingliste funktioniert per E-Mail > *** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe MySQL verwendet ein nicht standardisiertes Sicherheits-/Zugriffs-System, welches im Folgenden näher dargestellt werden soll. Vorab sei erwähnt, daß nach jeder Änderung der Zugriffsrechte ein Reload des Datenbank-Servers durchgeführt werden muß, damit die Änderungen wirksam werden. Dies wird mittels mysqladmin reload erledigt. Welche Aufgaben werden vom Berechtigungssystem erledigt ? Die grundlegende Funktion besteht darin, einem Benutzer auf einem Host Berechtigungen zur Ausführung von SELECT, INSERT, UPDATE und DELETE Befehlen zu erteilen (oder auch nicht). Ferner kann die Verwendung eines 'anonymen Benutzers' sowie MySQL Funktionen wie LOAD DATA INFILE geregelt werden. Weiterhin werden mittels des Berechtigungssystems administrative Rechte an dem Datenbank-Server selbst, wie z.B. Reload, vergeben. Anmerkung: Man sollte im Folgenden beachten, daß die MySQL-Benutzernamen und Paßwörter nichts mit den UNIX-Benutzernamen und Paßwörtern zu tun haben! Wie funktioniert das Sicherheitssystem ? MySQL unterscheidet nicht zwischen einzelnen Benutzern sondern zwischen der Kombination aus Benutzer und Host. Diese Kombination ergibt eine eindeutige Identität. Das Sicherheitssystem regelt hierbei genauestens welcher Benutzer von welchem Host welche Rechte auf welcher Datenbank besitzt. Diese Einstellungen werden in drei Tabellen abgelegt: user, host, db Tabelle 'user': Enthält alle Host/Benutzer-Kombinationen, welche zu dem MySQL-Server eine Verbindung herstellen dürfen. Alle Berechtigungen, die ein Benutzer in dieser Tabelle erhält, gelten für alle anderen Datenbanken, sofern keine erweiterten Berechtigungen für den jeweiligen Benutzer in der Tabelle 'db' definiert wurden. Man kann diese Berechtigungen auch als grundlegende Einstellungen ansehen und eine 'datenbankabhängige' Feinabstimmung in der Tabelle 'db' festlegen. Tabelle 'host': Die host-Tabelle ist in großen Netzwerken als 'Nachschlag'-Tabelle für leere Host-Einträge in der 'db'-Tabelle sinnvoll. Möchte man, daß ein Benutzer von jedem Host in dem Netzwerk auf den Datenbank-Server zugreifen kann, so sollte man den Host-Eintrag in der 'db'-Tabelle auslassen und alle Hosts des Netzwerkes in der 'host'-Tabelle eintragen. Tabelle 'db': In dieser Tabelle wird definiert, welche Datenbank der jeweilige Host/Benutzer mit welchen Berechtigungen verwenden darf. Mit ihr ist wie oben erwähnt die Feinabstimmung möglich. ( Die Host und Db Spalten können Strings mit Wildcards '%' und '_' beinhalten. Wird für diese Spalten kein Wert eingetragen entspricht dies dem Wert '%'. ) Eine Computeradresse kann sein: 'Localhost' ein Hostname eine IP-Nummer ein String mit Wildcards Ein leerer Host-Eintrag in der 'db'-Tabelle bedeutet keinen Host aus der 'host'-Tabelle. Ein leerer Host-Eintrag in der 'host'- oder 'user'-Tabelle bedeutet keinen Host. Die Spalte Db in der 'db'-Tabelle beinhaltet den Namen einer Datenbank oder einer SQL Regexp (regular expression: beschreibt einen String oder eine Menge von Strings). Ein leerer Benutzereintrag bedeutet keinen Benutzer. In dieser Spalte können keine Wildcards verwendet werden. Die Berechtigungen der 'user'-Tabelle werden mit den Berechtigungen aus der 'db'-Tabelle verknüpft (OR). Dies bedeutet, daß ein Superuser nur in der Tabelle 'user' mit allen Berechtigungen festgelegt auf 'Y' (Yes) eingetragen werden muß. Wenn man nun den Aufbau der Tabellen näher betrachtet, wird man feststellen, daß die 'user'-Tabelle zusätzlich zu den Zugriffsberechtigungen auf die jeweilige Datenbank auch administrative Berechtigungen regelt. Dadurch sollte klar sein, daß diese Tabelle die grundlegenden Berechtigungen regelt. Für noch detailliertere Informationen lesen Sie bitte die von MySQL zur Verfügung gestellte Dokumentation (http://www.mysql.com/doc.html). Das ist ein Teilauszug http://infosoft.soft.uni-linz.ac.at/Info/RL/Middleware/php3.html. Ich hoffe, dass es weiterhilft rowu --- *** Abmelden von dieser Mailingliste funktioniert per E-Mail *** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe
php::bar PHP Wiki - Listenarchive