next up previous contents


4.4 Revoke-Kommando

Das Gegenstück zu 'grant' stellt 'revoke' dar. Die Syntax ist plus/minus gleich, wenn wir davon absehen, dass aus 'grant ... on ... to ...' ein 'revoke ... on ... from ...' wird. Konkret wollen wir unserem Gast die Rechte wieder entziehen. Dies erreichen wir mit:

mysql> revoke select on archiv.* from gast@'%';
Query OK, 0 rows affected (0.01 sec)

Wir sollten uns klar sein, dass der User 'gast' von irgendwoher nun nicht mehr in die Datenbank 'archiv' reinkommt, dass er sich aber gleichwohl noch in MySQL anmelden kann. Ist das tragisch? In gewisser Weise schon, steht doch per Default die Datenbank 'test' sämtlichen Usern zur Verfügung. Unser mittlerweile unerwünschte externe Gast könnte nun in dieser Datenbank 'test' wahllos Tabellen eröffnen und unsere Festplatte in die Knie zwingen. Dies sollten wir vermeiden, indem wir z.B. mit 'root@localhost' den User 'gast@%' definitiv aus der Tabelle 'user' entfernen:

mysql> use mysql;
Database changed
mysql> delete from user where User='gast' and Host='%';
Query OK, 1 row affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

Da wir bei diesem Beispiel direkt eine Änderung in der Tabelle 'user' vornehmen, benötigen wir anschliessend das Kommando 'flush privileges'; erst damit wird die Änderung aktiviert.

Ein Spezialfall besteht bei den 'grant'-Rechten. Hat ein User 'grant'-Rechte ('with grant option') erhalten, so müssen wir diese mit 'revoke grant option ...' zusätzlich zum normalen 'revoke'-Kommando aus der 'mysql'-Datenbank entfernen.



next up previous contents

Dokument als PDF anzeigen -- © 2003-06-15 by Urs Pfister, CH-8057 Zürich