Según el GRANT
comando, no hay posibilidad de establecer niveles de permiso por fila (tabla/columnas, sí, pero no las filas individuales).
Puede configurar una Ver para manejar esto y otorgar al usuario permiso para acceder a la vista en su lugar.
Una vista como la siguiente debería mostrarle los mensajes basados en el usuario actual:
CREATE VIEW user_messages AS
SELECT *
FROM messages
WHERE
messages.from = user() OR messages.to = user();
Y la declaración de concesión debería ser similar:
GRANT ALL ON db.user_messages TO 'jeffrey'@'localhost';