next up previous contents


4.2 Die Datenbank 'mysql'

In der Datenbank 'mysql' werden die Zugriffsrechte verwaltet. Betrachten wir zunächst einmal die Tabellen, die uns dazu zur Verfügung stehen:

mysql> use mysql;

Database changed
mysql> show tables;
+-----------------+
| Tables_in_mysql |
+-----------------+
| columns_priv    |
| db              |
| func            |
| host            |
| tables_priv     |
| user            |
+-----------------+
6 rows in set (0.00 sec)

In der Tabelle 'user' können wir globale Rechte für User festlegen. Die Tabellen 'db', 'host', 'tables_priv' und 'columns_priv' dienen dazu, die Rechte auf Stufe Datenbank(en), Rechner (Host), Tabelle(n) sowie Spalte(n) festzulegen.

Im Prinzip könnten wir die entsprechenden Tabellen mit 'insert' bzw. 'update' Kommandos entsprechend bearbeiten. Einmal davon abgesehen, dass das eine relativ mühsame Sache ist, dürften wir dabei nicht vergessen, dass wir nach jeder Änderung das Kommando 'flush privileges' eingeben müssen; erst dann werden die Änderungen aktiv geschaltet. Wesentlich eleganter sind die Befehle 'grant' und 'revoke', weil wir so mit einem SQL-Befehl eine effiziente Rechtevergabe vornehmen können.



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