Si revisas con atención el manual de referencia (
13.5.1.3. Sintaxis de GRANT y REVOKE). verás que esa es la
única forma de hacerlo. Lo que sucede es que la sentencia que usas está incompleta:
Código sql:
Ver originalGRANT SELECT ON TABLE idead.investigaciones, idead.otratabla
TO 'juan'@'localhost' IDENTIFIED BY '******';
Es decir, cuando no estás dando permisos sobre bases, sino sobre objetos de una base, debes especificar qué tipo de objetos estás por listar.
Esto es así porque MySQL debe usar una tabla de privilegios específica para estos casos y la rutina es diferente, como diferentes son los permisos y las validaciones.