1#
2# MDEV-21966 Bind REPLICATION SLAVE ADMIN to a number of global system variables
3#
4SET @global=@@global.replicate_do_db;
5# Test that "SET replicate_do_db" is not allowed without REPLICATION SLAVE ADMIN or SUPER
6CREATE USER user1@localhost;
7GRANT ALL PRIVILEGES ON *.* TO user1@localhost;
8REVOKE REPLICATION SLAVE ADMIN, SUPER ON *.* FROM user1@localhost;
9connect user1,localhost,user1,,;
10connection user1;
11SET GLOBAL replicate_do_db='';
12ERROR 42000: Access denied; you need (at least one of) the SUPER, REPLICATION SLAVE ADMIN privilege(s) for this operation
13SET replicate_do_db='';
14ERROR HY000: Variable 'replicate_do_db' is a GLOBAL variable and should be set with SET GLOBAL
15SET SESSION replicate_do_db='';
16ERROR HY000: Variable 'replicate_do_db' is a GLOBAL variable and should be set with SET GLOBAL
17disconnect user1;
18connection default;
19DROP USER user1@localhost;
20# Test that "SET replicate_do_db" is allowed with REPLICATION SLAVE ADMIN
21CREATE USER user1@localhost;
22GRANT REPLICATION SLAVE ADMIN ON *.* TO user1@localhost;
23connect user1,localhost,user1,,;
24connection user1;
25SET GLOBAL replicate_do_db='';
26SET replicate_do_db='';
27ERROR HY000: Variable 'replicate_do_db' is a GLOBAL variable and should be set with SET GLOBAL
28SET SESSION replicate_do_db='';
29ERROR HY000: Variable 'replicate_do_db' is a GLOBAL variable and should be set with SET GLOBAL
30disconnect user1;
31connection default;
32DROP USER user1@localhost;
33# Test that "SET replicate_do_db" is allowed with SUPER
34CREATE USER user1@localhost;
35GRANT SUPER ON *.* TO user1@localhost;
36connect user1,localhost,user1,,;
37connection user1;
38SET GLOBAL replicate_do_db='';
39SET replicate_do_db='';
40ERROR HY000: Variable 'replicate_do_db' is a GLOBAL variable and should be set with SET GLOBAL
41SET SESSION replicate_do_db='';
42ERROR HY000: Variable 'replicate_do_db' is a GLOBAL variable and should be set with SET GLOBAL
43disconnect user1;
44connection default;
45DROP USER user1@localhost;
46SET @@global.replicate_do_db=@global;
47