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'