mariadb/mysql-test/suite/roles/grant-5771.result
Sergei Golubchik e3d9369774 cleanup: disconnect before DROP USER
let's always disconnect a user connection before dropping the said user.
MariaDB is traditionally very tolerant to active connections
of the dropped user, which isn't the case for most other databases.

Let's avoid unintentionally spreading incompatible behavior
and disconnect before drop.

Except in cases when the test specifically tests such a behavior.
2025-07-16 09:14:33 +07:00

37 lines
1 KiB
Text

create database mysqltest1;
create database mysqltest2;
create user foo@localhost;
create role r1, r2;
grant all on mysqltest1.* to r1;
grant all on mysqltest2.* to r2;
grant r1 to r2;
grant r2 to foo@localhost;
connect foo,localhost,foo,,;
select current_user;
current_user
foo@localhost
show tables in mysqltest1;
ERROR 42000: Access denied for user 'foo'@'localhost' to database 'mysqltest1'
show tables in mysqltest2;
ERROR 42000: Access denied for user 'foo'@'localhost' to database 'mysqltest2'
set role r2;
show tables in mysqltest1;
Tables_in_mysqltest1
show tables in mysqltest2;
Tables_in_mysqltest2
show grants;
Grants for foo@localhost
GRANT `r2` TO `foo`@`localhost`
GRANT USAGE ON *.* TO `foo`@`localhost`
GRANT `r1` TO `r2`
GRANT USAGE ON *.* TO `r2`
GRANT ALL PRIVILEGES ON `mysqltest2`.* TO `r2`
GRANT USAGE ON *.* TO `r1`
GRANT ALL PRIVILEGES ON `mysqltest1`.* TO `r1`
connection default;
disconnect foo;
drop user foo@localhost;
drop role r1;
drop role r2;
drop database mysqltest1;
drop database mysqltest2;