polardbxengine/mysql-test/suite/encryption/t/alter_empty_tablespace.inc

55 lines
1.9 KiB
SQL

# Parameter to set before including this file.
# $privilege_check = 'true' or 'false'
# $global_database_encryption_default = 'true' or 'false'
# $explicit_encryption_clause = 'true' or 'false'
# $tablespace_encryption = 'y' or 'n'
# $expected_error = ER_*
--let caseno=`SELECT $caseno+1`
--echo # [ALTER TABLESPACE] Case $caseno )
--echo `````````````````````````````````````````````````````````
eval CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENCRYPTION=$tablespace_encryption;
SELECT NAME, ENCRYPTION FROM INFORMATION_SCHEMA.INNODB_TABLESPACES
WHERE NAME LIKE 'ts1';
eval SET SESSION default_table_encryption=$global_database_encryption_default;
eval SET GLOBAL table_encryption_privilege_check=$privilege_check;
--error $expected_error
eval ALTER TABLESPACE ts1 ENCRYPTION=$alter_encryption;
SHOW WARNINGS;
SELECT NAME, ENCRYPTION FROM INFORMATION_SCHEMA.INNODB_TABLESPACES
WHERE NAME LIKE 'ts1';
DROP TABLESPACE ts1;
if ($privilege_check == 'true')
{
--echo # Check that we never fail with TABLE_ENCRYPTION_ADMIN
connection default;
--echo # Grant user with TABLE_ENCRYPTION_ADMIN
GRANT TABLE_ENCRYPTION_ADMIN ON *.* TO u1@localhost;
connection con1;
SET GLOBAL table_encryption_privilege_check=false;
eval CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENCRYPTION=$tablespace_encryption;
SELECT NAME, ENCRYPTION FROM INFORMATION_SCHEMA.INNODB_TABLESPACES
WHERE NAME LIKE 'ts1';
eval SET GLOBAL table_encryption_privilege_check=$privilege_check;
eval ALTER TABLESPACE ts1 ENCRYPTION=$alter_encryption;
SHOW WARNINGS;
SELECT NAME, ENCRYPTION FROM INFORMATION_SCHEMA.INNODB_TABLESPACES
WHERE NAME LIKE 'ts1';
DROP TABLESPACE ts1;
connection default;
--echo # Revoke TABLE_ENCRYPTION_ADMIN from user.
REVOKE TABLE_ENCRYPTION_ADMIN ON *.* FROM u1@localhost;
connection con1;
}
# Clean up
SET GLOBAL table_encryption_privilege_check=false;
SET SESSION default_table_encryption=false;