Restricting the # of Rows a User can return in a single query
Always just give the grants necessary. If you want to restrict on the row number, you have to create views like

CREATE VIEW view_name AS
SELECT whatever FROM a_table ORDER BY whatever LIMIT 10;


Then just grant select on this view, not the table the view is reading from. Read more about views here. With DEFINER and SQL SECURITY you can also select on things, that the user usually has no right to. Whatever you need. 

As a last note, I included ORDER BY in the query, because a LIMIT without ORDER BY usually doesn't make much sense, cause there's no order in a relational database unless you specify it with said ORDER BY.