drop database if exists db; Warnings: Note 1008 Can't drop database 'db'; database doesn't exist create role r1; create user beep@'%'; create database db; create table db.t1 (i int); create table db.t2 (b int); grant select on db.* to r1; grant r1 to beep@'%'; connect con1,localhost,beep,,; show databases; Database information_schema test show create database db; ERROR 42000: Access denied for user 'beep'@'localhost' to database 'db' select table_schema, table_name from information_schema.tables where table_schema = 'db' order by table_name; table_schema table_name set role r1; show databases; Database db information_schema test show create database db; Database Create Database db CREATE DATABASE `db` /*!40100 DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci */ select table_schema, table_name from information_schema.tables where table_schema = 'db' order by table_name; table_schema table_name db t1 db t2 connection default; create role r2; create user beep2@'%'; grant update on db.* to r2; grant r2 to beep2; connect con2,localhost,beep2,,; show databases; Database information_schema test show create database db; ERROR 42000: Access denied for user 'beep2'@'localhost' to database 'db' select table_schema, table_name from information_schema.tables where table_schema = 'db' order by table_name; table_schema table_name set role r2; show databases; Database db information_schema test show create database db; Database Create Database db CREATE DATABASE `db` /*!40100 DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci */ select table_schema, table_name from information_schema.tables where table_schema = 'db' order by table_name; table_schema table_name db t1 db t2 connection default; drop database db; drop role r1; drop user beep; drop role r2; drop user beep2;