phpbar.de logo

Mailinglisten-Archive

Re: zugriffsrechte
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: zugriffsrechte



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


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive