1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-09 22:24:09 +03:00

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.
This commit is contained in:
Alexander Barkov
2020-03-24 23:12:30 +04:00
parent d23c3e03ac
commit 30cacf3fce
2 changed files with 82 additions and 0 deletions

View File

@@ -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;

View File

@@ -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;