mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			115 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# Works in statement-based and row-based binlogging.
 | 
						|
# Test that GRANT and other user management commands are replicated to the slave
 | 
						|
 | 
						|
-- source include/master-slave.inc
 | 
						|
 | 
						|
# do not be influenced by other tests.
 | 
						|
connection master;
 | 
						|
delete from mysql.user where user=_binary'rpl_do_grant';
 | 
						|
delete from mysql.db where user=_binary'rpl_do_grant';
 | 
						|
flush privileges;
 | 
						|
save_master_pos;
 | 
						|
connection slave;
 | 
						|
sync_with_master;
 | 
						|
# if these DELETE did nothing on the master, we need to do them manually on the
 | 
						|
# slave.
 | 
						|
delete from mysql.user where user=_binary'rpl_ignore_grant';
 | 
						|
delete from mysql.db where user=_binary'rpl_ignore_grant';
 | 
						|
flush privileges;
 | 
						|
 | 
						|
# test replication of GRANT
 | 
						|
connection master;
 | 
						|
grant select on *.* to rpl_do_grant@localhost;
 | 
						|
grant drop on test.* to rpl_do_grant@localhost;
 | 
						|
save_master_pos;
 | 
						|
connection slave;
 | 
						|
sync_with_master;
 | 
						|
show grants for rpl_do_grant@localhost;
 | 
						|
 | 
						|
# test replication of SET PASSWORD
 | 
						|
connection master;
 | 
						|
set password for rpl_do_grant@localhost=password("does it work?");
 | 
						|
save_master_pos;
 | 
						|
connection slave;
 | 
						|
sync_with_master;
 | 
						|
select password<>_binary'' from mysql.user where user=_binary'rpl_do_grant';
 | 
						|
 | 
						|
#
 | 
						|
# Bug#24158 SET PASSWORD in binary log fails under ANSI_QUOTES
 | 
						|
#
 | 
						|
connection master;
 | 
						|
update mysql.user set password='' where user='rpl_do_grant';
 | 
						|
flush privileges;
 | 
						|
select password<>'' from mysql.user where user='rpl_do_grant';
 | 
						|
set sql_mode='ANSI_QUOTES';
 | 
						|
set password for rpl_do_grant@localhost=password('does it work?');
 | 
						|
set sql_mode='';
 | 
						|
save_master_pos;
 | 
						|
connection slave;
 | 
						|
sync_with_master;
 | 
						|
select password<>'' from mysql.user where user='rpl_do_grant';
 | 
						|
 | 
						|
 | 
						|
# clear what we have done, to not influence other tests.
 | 
						|
connection master;
 | 
						|
delete from mysql.user where user=_binary'rpl_do_grant';
 | 
						|
delete from mysql.db where user=_binary'rpl_do_grant';
 | 
						|
flush privileges;
 | 
						|
sync_slave_with_master;
 | 
						|
# The mysql database is not replicated, so we have to do the deletes
 | 
						|
# manually on the slave as well. 
 | 
						|
delete from mysql.user where user=_binary'rpl_do_grant';
 | 
						|
delete from mysql.db where user=_binary'rpl_do_grant';
 | 
						|
flush privileges;
 | 
						|
 | 
						|
# End of 4.1 tests
 | 
						|
 | 
						|
connection master;
 | 
						|
--error 1141
 | 
						|
show grants for rpl_do_grant@localhost;
 | 
						|
connection slave;
 | 
						|
--error 1141
 | 
						|
show grants for rpl_do_grant@localhost;
 | 
						|
 | 
						|
connection master;
 | 
						|
create user rpl_do_grant@localhost;
 | 
						|
show grants for rpl_do_grant@localhost;
 | 
						|
--error 1141
 | 
						|
show grants for rpl_do_grant2@localhost;
 | 
						|
sync_slave_with_master;
 | 
						|
show grants for rpl_do_grant@localhost;
 | 
						|
--error 1141
 | 
						|
show grants for rpl_do_grant2@localhost;
 | 
						|
 | 
						|
connection master;
 | 
						|
rename user rpl_do_grant@localhost to rpl_do_grant2@localhost;
 | 
						|
show grants for rpl_do_grant2@localhost;
 | 
						|
sync_slave_with_master;
 | 
						|
show grants for rpl_do_grant2@localhost;
 | 
						|
 | 
						|
connection master;
 | 
						|
grant DELETE,INSERT on mysqltest1.* to rpl_do_grant2@localhost;
 | 
						|
show grants for rpl_do_grant2@localhost;
 | 
						|
sync_slave_with_master;
 | 
						|
show grants for rpl_do_grant2@localhost;
 | 
						|
 | 
						|
connection master;
 | 
						|
revoke DELETE on mysqltest1.* from rpl_do_grant2@localhost;
 | 
						|
show grants for rpl_do_grant2@localhost;
 | 
						|
sync_slave_with_master;
 | 
						|
show grants for rpl_do_grant2@localhost;
 | 
						|
 | 
						|
connection master;
 | 
						|
revoke all privileges, grant option from rpl_do_grant2@localhost;
 | 
						|
show grants for rpl_do_grant2@localhost;
 | 
						|
sync_slave_with_master;
 | 
						|
show grants for rpl_do_grant2@localhost;
 | 
						|
 | 
						|
connection master;
 | 
						|
drop user rpl_do_grant2@localhost;
 | 
						|
--error 1141
 | 
						|
show grants for rpl_do_grant2@localhost;
 | 
						|
sync_slave_with_master;
 | 
						|
--error 1141
 | 
						|
show grants for rpl_do_grant2@localhost;
 |