diff options
author | Monty <monty@mariadb.org> | 2018-11-13 01:34:37 +0200 |
---|---|---|
committer | Monty <monty@mariadb.org> | 2018-12-09 22:12:27 +0200 |
commit | c53aab974bef7d98810409029d996e89677d2f68 (patch) | |
tree | 5ea7b1ed09f9b85802d8093e38b9193812cb4a87 /mysql-test/main/backup_priv.test | |
parent | 965311ee8b2bf65e772a121a83fc35b4dd44de5e (diff) | |
download | mariadb-git-c53aab974bef7d98810409029d996e89677d2f68.tar.gz |
Added syntax and implementation for BACKUP STAGE's
Part of MDEV-5336 Implement LOCK FOR BACKUP
- Changed check of Global_only_lock to also include BACKUP lock.
- We store latest MDL_BACKUP_DDL lock in thd->mdl_backup_ticket to be able
to downgrade lock during copy_data_between_tables()
Diffstat (limited to 'mysql-test/main/backup_priv.test')
-rw-r--r-- | mysql-test/main/backup_priv.test | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/mysql-test/main/backup_priv.test b/mysql-test/main/backup_priv.test new file mode 100644 index 00000000000..93b69af0b67 --- /dev/null +++ b/mysql-test/main/backup_priv.test @@ -0,0 +1,52 @@ +--source include/have_innodb.inc +--source include/not_embedded.inc +--source include/have_metadata_lock_info.inc + +--echo # +--echo # Test privileges for BACKUP STAGES +--echo # + +set sql_mode=""; + +GRANT RELOAD ON *.* TO user1@localhost; +GRANT CREATE, DROP ON *.* TO user2@localhost; + +--connect(con1, localhost, user1) +BACKUP STAGE START; +BACKUP STAGE END; +--echo # change_user must release backup lock +BACKUP STAGE START; +BACKUP STAGE FLUSH; +SELECT lock_mode FROM information_schema.metadata_lock_info WHERE lock_type='Backup lock'; +change_user user2; +SELECT lock_mode FROM information_schema.metadata_lock_info WHERE lock_type='Backup lock'; +--disconnect con1 +--source include/wait_until_disconnected.inc +--connection default + +--echo # A very low privileged user (-> con4) cannot acquire the backup lock + +--connect(con1, localhost, user2) +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +BACKUP STAGE START; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +BACKUP STAGE FLUSH; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +BACKUP STAGE BLOCK_DDL; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +BACKUP STAGE BLOCK_COMMIT; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +BACKUP STAGE END; +--disconnect con1 +--source include/wait_until_disconnected.inc + +--connection default +DROP USER user1@localhost, user2@localhost; + +--echo # +--echo # Test using BACKUP STAGES in a SP +--echo # + +--error ER_SP_BADSTATEMENT +create procedure foo42() + BACKUP STAGE START; |