Per GRANT
Befehl, gibt es keine Möglichkeit, Berechtigungsstufen pro Zeile festzulegen (Tabelle/Spalten, ja - aber nicht die einzelnen Zeilen).
Sie könnten eine Ansicht einrichten um dies zu handhaben und dem Benutzer stattdessen die Berechtigung zum Zugriff auf die Ansicht zu erteilen.
Eine Ansicht wie die folgende sollte Ihnen die Nachrichten basierend auf dem aktuellen Benutzer anzeigen:
CREATE VIEW user_messages AS
SELECT *
FROM messages
WHERE
messages.from = user() OR messages.to = user();
Und die Grant-Anweisung sollte ähnlich sein:
GRANT ALL ON db.user_messages TO 'jeffrey'@'localhost';