Mailinglisten-Archive |
On Thu, 14 Oct 1999 22:14:03 +0200, Ralf Dieterle wrote:
>hat jemand Tools und/oder Hilfen/Infos zu
>grants von tables_priv und columns_priv ?
Ich erlaube mir, etwas von Martin Ramsch geschriebenes hier zu
posten:
[...]
Stattdessen erzeugt man gewöhnlich in MySQL einen Benutzer, indem
man diesen Benutzer OHNE jegliche inhärente Rechte erzeugt:
INSERT INTO user (host, user, password)
VALUES ('fromhost', 'username', PASSWORD('gemein'));
Dieser User ist nun ein Nichts & Niemand. Er kann nix und darf auch
nix. Ihm können jetzt für eine Datenbank einzelne, spezifische
Rechte erteilt werden.
In MySQL 3.22 sind dies die 6 Rechte select_priv, insert_priv,
update_priv, delete_priv, create_priv, drop_priv, die die
gleichnamigen SQL-Befehle freischalten.
Man macht also
INSERT INTO db ( host, db, user,
select_priv,
insert_priv, update_priv, delete_priv,
create_priv, drop_priv)
VALUES ( '%', 'database', 'username',
'y',
'y', 'y', 'y',
'y', 'y');
Dabei sollte man folgende Dinge beachten:
MySQL-Benutzer haben keinen Zusammenhang mit UNIX- oder
NT-Benutzern, außer daß PHP sinnvolle Defaults dafür annimmt, wenn
man beim Connect nix angibt (was man gewöhnlich aber tut).
MySQL-Benutzer haben immer die Form (username, fromhost), sodaß man
niemals einen Benutzer, sondern immer einen Benutzer von einem
Rechner freischaltet. MySQL versteht hier SQL-Wildcards.
MySQL-Benutzer gibt es in 3 grundsätzlich sinnvollen
Berechtigungsstufen:
- Rein lesender Zugriff -> Nur select_priv geben.
Dies ist sinnvoll bei rein lesenden Anwendungen, z.B. ein
Spamgenerator, der sich die Adreßspalte einer Kundentabelle aus
der Datenbank liest.
- Lesender und ändernder Zugriff -> select, insert, update, delete
geben.
Dies ist sinnvoll für alle normalen Webanwendungen, die auf eine
Datenbank editierend zugreifen (z.B. für das Admin-Interface zu
der o.a. Werbemüllschleuder)
- Strukturverändernder Zugriff (die o.a. 4 Rechte + create + drop)
Dies ist oftmals nur zur Installation notwendig, damit die
benötigten Tables erzeugt und gelöscht werden können. Die meisten
Anwendungen brauchen diese Rechte nicht.
Damit MySQL die geänderten Zugriffsrechte zur Kenntnis nimmt, muß
auf der Kommandozeile "mysqladmin reload" gefahren werden.
hth
amalesh
---
*** 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