mirror of
https://github.com/MariaDB/server.git
synced 2025-08-03 09:01:34 +02:00

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.
37 lines
1 KiB
Text
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;
|