create user user_1; show grants for user_1; Grants for user_1@% GRANT USAGE ON *.* TO `user_1`@`%` # create user create database d; use d; #System_Invisible create table t1(a int) with system versioning; insert into t1 values(1); select a from t1; a 1 select count(row_start) from t1; count(row_start) 1 grant insert(a) on t1 to user_1; grant update(a) on t1 to user_1; grant select(a) on t1 to user_1; grant delete on t1 to user_1; connect con1, localhost, user_1,,d; connection con1; select user(); user() user_1@localhost select * from t1; a 1 insert into t1 values(2); select * from t1; a 1 2 insert into t1(a) values(3); select * from t1; a 1 2 3 select a from t1; a 1 2 3 select count(row_start) from t1; count(row_start) 3 delete from t1 where a =1; update t1 set a=1 where a=3; select * from t1; a 2 1 connection default; REVOKE ALL PRIVILEGES, GRANT OPTION FROM user_1; connection con1; select * from t1; ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `d`.`t1` select count(row_start) from t1; ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `d`.`t1` disconnect con1; #Cleanup connection default; drop user user_1; drop database d;