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