'insert' permission should be all you need to do an insert
:
create database stack;
create user dummy;
create table stack.t(v integer primary key);
grant insert on stack.* to dummy;
as dummy:
insert into stack.t values(1);
Query OK, 1 row affected (0.00 sec)
select * from stack.t;
ERROR 1142 (42000): SELECT command denied to user 'dummy'@'localhost' for table 't'
and the grant
like this will even apply to tables created after the grant
was made - it gives a database privilege
As you also want to select
you will also need to grant
select
on stack.* to dummy