1--source include/have_innodb.inc
2--source include/not_embedded.inc
3--source include/have_metadata_lock_info.inc
4
5--echo #
6--echo # Test privileges for BACKUP STAGES
7--echo #
8
9set sql_mode="";
10
11GRANT RELOAD ON *.* TO user1@localhost;
12GRANT CREATE, DROP ON *.* TO user2@localhost;
13
14--connect(con1, localhost, user1)
15BACKUP STAGE START;
16BACKUP STAGE END;
17--echo # change_user must release backup lock
18BACKUP STAGE START;
19BACKUP STAGE FLUSH;
20SELECT lock_mode FROM information_schema.metadata_lock_info WHERE lock_type='Backup lock';
21change_user user2;
22SELECT lock_mode FROM information_schema.metadata_lock_info WHERE lock_type='Backup lock';
23--disconnect con1
24--source include/wait_until_disconnected.inc
25--connection default
26
27--echo # A very low privileged user (-> con4) cannot acquire the backup lock
28
29--connect(con1, localhost, user2)
30--error ER_SPECIFIC_ACCESS_DENIED_ERROR
31BACKUP STAGE START;
32--error ER_SPECIFIC_ACCESS_DENIED_ERROR
33BACKUP STAGE FLUSH;
34--error ER_SPECIFIC_ACCESS_DENIED_ERROR
35BACKUP STAGE BLOCK_DDL;
36--error ER_SPECIFIC_ACCESS_DENIED_ERROR
37BACKUP STAGE BLOCK_COMMIT;
38--error ER_SPECIFIC_ACCESS_DENIED_ERROR
39BACKUP STAGE END;
40--disconnect con1
41--source include/wait_until_disconnected.inc
42
43--connection default
44DROP USER user1@localhost, user2@localhost;
45
46--echo #
47--echo # Test using BACKUP STAGES in a SP
48--echo #
49
50--error ER_SP_BADSTATEMENT
51create procedure foo42()
52  BACKUP STAGE START;
53