From 30cacf3fce2456edc1d2c8b048060c97c12de1f8 Mon Sep 17 00:00:00 2001 From: Alexander Barkov Date: Tue, 24 Mar 2020 23:12:30 +0400 Subject: [PATCH] An additional test for MDEV-21743 Split up SUPER privilege to smaller privileges Adding a test to check that having a user with REPLICATION SLAVE privilege is enough to run replication. Made by Serg. --- .../rpl/r/grant_replication_slave.result | 43 +++++++++++++++++++ .../suite/rpl/t/grant_replication_slave.test | 39 +++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 mysql-test/suite/rpl/r/grant_replication_slave.result create mode 100644 mysql-test/suite/rpl/t/grant_replication_slave.test diff --git a/mysql-test/suite/rpl/r/grant_replication_slave.result b/mysql-test/suite/rpl/r/grant_replication_slave.result new file mode 100644 index 00000000000..6ded7e72327 --- /dev/null +++ b/mysql-test/suite/rpl/r/grant_replication_slave.result @@ -0,0 +1,43 @@ +# +# MDEV-21743 Split up SUPER privilege to smaller privileges +# +create user rpl@localhost; +grant replication slave on *.* to rpl@localhost; +include/master-slave.inc +[connection master] +connection slave; +stop slave; +change master to master_user='rpl'; +connection master; +create database mysqltest1; +create table mysqltest1.t1 (a int); +insert mysqltest1.t1 values (1),(2),(3); +select * from mysqltest1.t1; +a +1 +2 +3 +flush tables; +create user foo@localhost; +grant select on *.* to foo@localhost; +connection slave; +start slave; +connection master; +connection slave; +select * from mysqltest1.t1; +a +1 +2 +3 +show grants for foo@localhost; +Grants for foo@localhost +GRANT SELECT ON *.* TO `foo`@`localhost` +connection master; +drop user foo@localhost; +drop database mysqltest1; +connection slave; +stop slave; +change master to master_user='root'; +start slave; +include/rpl_end.inc +drop user rpl@localhost; diff --git a/mysql-test/suite/rpl/t/grant_replication_slave.test b/mysql-test/suite/rpl/t/grant_replication_slave.test new file mode 100644 index 00000000000..c5aca0a60e1 --- /dev/null +++ b/mysql-test/suite/rpl/t/grant_replication_slave.test @@ -0,0 +1,39 @@ +--echo # +--echo # MDEV-21743 Split up SUPER privilege to smaller privileges +--echo # + +# Checking that REPLICATION SLAVE is enough to start replication + +create user rpl@localhost; +grant replication slave on *.* to rpl@localhost; + +source include/master-slave.inc; +connection slave; +stop slave; +change master to master_user='rpl'; +connection master; + +create database mysqltest1; +create table mysqltest1.t1 (a int); +insert mysqltest1.t1 values (1),(2),(3); +select * from mysqltest1.t1; +flush tables; +create user foo@localhost; +grant select on *.* to foo@localhost; + +connection slave; +start slave; +connection master; +sync_slave_with_master; +select * from mysqltest1.t1; +show grants for foo@localhost; +connection master; +drop user foo@localhost; +drop database mysqltest1; +sync_slave_with_master; +stop slave; +change master to master_user='root'; +start slave; + +source include/rpl_end.inc; +drop user rpl@localhost;