next up previous contents


4.5 Verfeinern von Zugriffsrechten

Nachfolgend möchten wir dem User 'gast@localhost' genau das Feld 'Titel' der Tabelle 'akten' in der Datenbank 'archiv' zum Ändern freigeben. Dies erreichen wir mit:

mysql> grant update(Titel) on archiv.akten to gast@localhost;
Query OK, 0 rows affected (0.01 sec)

Und nun melden wir uns kurz als als 'gast@localhost' an und machen die Probe aufs Exempel:

mysql> select * from akten;
+----------------------+---------------------+--------+----+----------------+
| Titel                | Datum               | Seiten | ID | DatumErfasst   |
+----------------------+---------------------+--------+----+----------------+
| Meine erste Akte     | 2003-05-28 00:00:00 |      3 |  1 | 20030526215835 |
| Akte mit Zeitstempel | 2003-05-28 00:00:00 |      0 |  3 | 20030526214942 |
+----------------------+---------------------+--------+----+----------------+
2 rows in set (0.01 sec)

mysql> update akten set Titel='Gast war hier' where ID=1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from akten;
+----------------------+---------------------+--------+----+----------------+
| Titel                | Datum               | Seiten | ID | DatumErfasst   |
+----------------------+---------------------+--------+----+----------------+
| Gast war hier        | 2003-05-28 00:00:00 |      3 |  1 | 20030527144213 |
| Akte mit Zeitstempel | 2003-05-28 00:00:00 |      0 |  3 | 20030526214942 |
+----------------------+---------------------+--------+----+----------------+
2 rows in set (0.01 sec)

Selbstverständlich kann der User 'gast@localhost' nur das Feld 'Titel' bearbeiten, im Feld 'Seiten' kann er keine Änderungen vornehmen:

mysql> update akten set Seiten=4 where ID=1;
ERROR 1143: UPDATE command denied to user: 'gast@localhost' 
            for column 'Seiten' in table 'akten'



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