I need to add an user able to read all my databases. So I create:
create user 'reader' identified by 'password'; grant select on *.* to 'reader';
The problem with this is that the user is able to read also system tables like mysql.user, which I think is a security problem. I tried to revoke the select privilege on that table:
revoke SELECT ON mysql.* from 'reader';
But I get
ERROR 1141 (42000): There is no such grant defined for user 'reader';
What am I doing wrong? Is there another way to achieve what I want? Or manipulating the grant tables is the only way?