2849 lines
121 KiB
Plaintext
2849 lines
121 KiB
Plaintext
#
|
|
# WL#12261 Control (enforce and disable) table encryption
|
|
#
|
|
# Pre-define user u1, which is used in different tests below.
|
|
CREATE USER u1@localhost;
|
|
GRANT ALL ON db1.* TO u1@localhost;
|
|
GRANT CREATE TABLESPACE, PROCESS, SYSTEM_VARIABLES_ADMIN ON *.* TO u1@localhost;
|
|
SET GLOBAL debug= '+d,skip_table_encryption_admin_check_for_set';
|
|
# This test run ALTER TABLE in different configurations,
|
|
#
|
|
# - Setting table_encryption_privilege_check to true/false.
|
|
# - Setting default_table_encryption to true/false.
|
|
# - With and without user holding TABLE_ENCRYPTION_ADMIN privilege.
|
|
# - Test SHOW CREATE TABLE
|
|
# - Test INFORMATION_SCHEMA.TABLES.CREATE_OPTIONS
|
|
# - Check for warnings generated.
|
|
#
|
|
# See comments in alter_table.inc for more details.
|
|
`````````````````````````````````````````````````````````
|
|
# Test using user tablespace 'ts1'
|
|
`````````````````````````````````````````````````````````
|
|
# table_encryption_privilege_check=OFF and default per-db encryption OFF
|
|
# [ALTER TABLE] Case 1 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='n';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='n';
|
|
CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENCRYPTION='n';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t2 TABLESPACE=ts1 ENCRYPTION='n';
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t4 TABLESPACE=ts1 ENCRYPTION='n';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `ts1` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `ts1` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1
|
|
t2
|
|
t3
|
|
t4
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
DROP TABLESPACE ts1;
|
|
# [ALTER TABLE] Case 2 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='n';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='n';
|
|
CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENCRYPTION='y';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t2 TABLESPACE=ts1 ENCRYPTION='y';
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t4 TABLESPACE=ts1 ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `ts1` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `ts1` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='y'
|
|
t2 ENCRYPTION='y'
|
|
t3 ENCRYPTION='y'
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
DROP TABLESPACE ts1;
|
|
`````````````````````````````````````````````````````````
|
|
# Moving encrypted tablespace to unencrypted tablespace is rejected.
|
|
# [ALTER TABLE] Case 3 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='n';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='y';
|
|
CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENCRYPTION='n';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t2 TABLESPACE=ts1 ENCRYPTION='n';
|
|
ERROR HY000: Source tablespace is encrypted but target tablespace is not.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t4 TABLESPACE=ts1 ENCRYPTION='n';
|
|
ERROR HY000: Source tablespace is encrypted but target tablespace is not.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1
|
|
t2 ENCRYPTION='y'
|
|
t3
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
DROP TABLESPACE ts1;
|
|
# [ALTER TABLE] Case 4 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='n';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='y';
|
|
CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENCRYPTION='y';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t2 TABLESPACE=ts1 ENCRYPTION='y';
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t4 TABLESPACE=ts1 ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `ts1` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `ts1` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='y'
|
|
t2 ENCRYPTION='y'
|
|
t3 ENCRYPTION='y'
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
DROP TABLESPACE ts1;
|
|
`````````````````````````````````````````````````````````
|
|
# table_encryption_privilege_check=OFF and default per-db encryption ON
|
|
# [ALTER TABLE] Case 5 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='y';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='n';
|
|
CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENCRYPTION='n';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
ALTER TABLE db1.t2 TABLESPACE=ts1 ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
ALTER TABLE db1.t4 TABLESPACE=ts1 ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `ts1` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='n' */
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `ts1` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='n' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='n'
|
|
t2 ENCRYPTION='n'
|
|
t3 ENCRYPTION='n'
|
|
t4 ENCRYPTION='n'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
DROP TABLESPACE ts1;
|
|
# [ALTER TABLE] Case 6 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='y';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='n';
|
|
CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENCRYPTION='y';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t2 TABLESPACE=ts1 ENCRYPTION='y';
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t4 TABLESPACE=ts1 ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `ts1` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `ts1` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='y'
|
|
t2 ENCRYPTION='y'
|
|
t3 ENCRYPTION='y'
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
DROP TABLESPACE ts1;
|
|
`````````````````````````````````````````````````````````
|
|
# Moving encrypted tablespace to unencrypted tablespace is rejected.
|
|
# [ALTER TABLE] Case 7 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='y';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='y';
|
|
CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENCRYPTION='n';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
ALTER TABLE db1.t2 TABLESPACE=ts1 ENCRYPTION='n';
|
|
ERROR HY000: Source tablespace is encrypted but target tablespace is not.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
ALTER TABLE db1.t4 TABLESPACE=ts1 ENCRYPTION='n';
|
|
ERROR HY000: Source tablespace is encrypted but target tablespace is not.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='n'
|
|
t2 ENCRYPTION='y'
|
|
t3 ENCRYPTION='n'
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
DROP TABLESPACE ts1;
|
|
# [ALTER TABLE] Case 8 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='y';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='y';
|
|
CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENCRYPTION='y';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t2 TABLESPACE=ts1 ENCRYPTION='y';
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t4 TABLESPACE=ts1 ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `ts1` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `ts1` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='y'
|
|
t2 ENCRYPTION='y'
|
|
t3 ENCRYPTION='y'
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
DROP TABLESPACE ts1;
|
|
`````````````````````````````````````````````````````````
|
|
# table_encryption_privilege_check=ON and default per-db encryption OFF
|
|
# [ALTER TABLE] Case 9 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='n';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='n';
|
|
CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENCRYPTION='n';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t2 TABLESPACE=ts1 ENCRYPTION='n';
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t4 TABLESPACE=ts1 ENCRYPTION='n';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `ts1` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `ts1` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1
|
|
t2
|
|
t3
|
|
t4
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
DROP TABLESPACE ts1;
|
|
`````````````````````````````````````````````````````````
|
|
# Request to create encrypted table to unencrypted database is rejected.
|
|
# [ALTER TABLE] Case 10 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='n';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='n';
|
|
CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENCRYPTION='y';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ERROR HY000: Table encryption differ from its database default encryption, and user doesn't have enough privilege.
|
|
ALTER TABLE db1.t2 TABLESPACE=ts1 ENCRYPTION='y';
|
|
ERROR HY000: Table encryption differ from its database default encryption, and user doesn't have enough privilege.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ERROR HY000: Table encryption differ from its database default encryption, and user doesn't have enough privilege.
|
|
ALTER TABLE db1.t4 TABLESPACE=ts1 ENCRYPTION='y';
|
|
ERROR HY000: Table encryption differ from its database default encryption, and user doesn't have enough privilege.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1
|
|
t2
|
|
t3
|
|
t4
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
DROP TABLESPACE ts1;
|
|
# [ALTER TABLE] Case 11 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='n';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='n';
|
|
CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENCRYPTION='y';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
# Grant TABLE_ENCRYPTION_ADMIN if requested.
|
|
GRANT TABLE_ENCRYPTION_ADMIN ON *.* TO u1@localhost;
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t2 TABLESPACE=ts1 ENCRYPTION='y';
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t4 TABLESPACE=ts1 ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `ts1` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `ts1` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='y'
|
|
t2 ENCRYPTION='y'
|
|
t3 ENCRYPTION='y'
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
# REVOKE TABLE_ENCRYPTION_ADMIN from user.
|
|
REVOKE TABLE_ENCRYPTION_ADMIN ON *.* FROM u1@localhost;
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
DROP TABLESPACE ts1;
|
|
`````````````````````````````````````````````````````````
|
|
# Moving encrypted tablespace to unencrypted tablespace is rejected.
|
|
# [ALTER TABLE] Case 12 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='n';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='y';
|
|
CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENCRYPTION='n';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t2 TABLESPACE=ts1 ENCRYPTION='n';
|
|
ERROR HY000: Source tablespace is encrypted but target tablespace is not.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t4 TABLESPACE=ts1 ENCRYPTION='n';
|
|
ERROR HY000: Source tablespace is encrypted but target tablespace is not.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1
|
|
t2 ENCRYPTION='y'
|
|
t3
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
DROP TABLESPACE ts1;
|
|
# [ALTER TABLE] Case 13 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='n';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='y';
|
|
CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENCRYPTION='y';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t2 TABLESPACE=ts1 ENCRYPTION='y';
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t4 TABLESPACE=ts1 ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `ts1` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `ts1` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='y'
|
|
t2 ENCRYPTION='y'
|
|
t3 ENCRYPTION='y'
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
DROP TABLESPACE ts1;
|
|
`````````````````````````````````````````````````````````
|
|
# table_encryption_privilege_check=ON and default per-db encryption ON
|
|
# [ALTER TABLE] Case 14 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='y';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='n';
|
|
CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENCRYPTION='n';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
ALTER TABLE db1.t2 TABLESPACE=ts1 ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
ALTER TABLE db1.t4 TABLESPACE=ts1 ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `ts1` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='n' */
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `ts1` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='n' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='n'
|
|
t2 ENCRYPTION='n'
|
|
t3 ENCRYPTION='n'
|
|
t4 ENCRYPTION='n'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
DROP TABLESPACE ts1;
|
|
# [ALTER TABLE] Case 15 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='y';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='n';
|
|
CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENCRYPTION='y';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t2 TABLESPACE=ts1 ENCRYPTION='y';
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t4 TABLESPACE=ts1 ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `ts1` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `ts1` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='y'
|
|
t2 ENCRYPTION='y'
|
|
t3 ENCRYPTION='y'
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
DROP TABLESPACE ts1;
|
|
# [ALTER TABLE] Case 16 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='y';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='y';
|
|
CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENCRYPTION='n';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ERROR HY000: Table encryption differ from its database default encryption, and user doesn't have enough privilege.
|
|
ALTER TABLE db1.t2 TABLESPACE=ts1 ENCRYPTION='n';
|
|
ERROR HY000: Source tablespace is encrypted but target tablespace is not.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ERROR HY000: Table encryption differ from its database default encryption, and user doesn't have enough privilege.
|
|
ALTER TABLE db1.t4 TABLESPACE=ts1 ENCRYPTION='n';
|
|
ERROR HY000: Source tablespace is encrypted but target tablespace is not.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='y'
|
|
t2 ENCRYPTION='y'
|
|
t3 ENCRYPTION='y'
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
DROP TABLESPACE ts1;
|
|
`````````````````````````````````````````````````````````
|
|
# Moving encrypted tablespace to unencrypted tablespace is rejected.
|
|
# [ALTER TABLE] Case 17 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='y';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='y';
|
|
CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENCRYPTION='n';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
# Grant TABLE_ENCRYPTION_ADMIN if requested.
|
|
GRANT TABLE_ENCRYPTION_ADMIN ON *.* TO u1@localhost;
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t2 TABLESPACE=ts1 ENCRYPTION='n';
|
|
ERROR HY000: Source tablespace is encrypted but target tablespace is not.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t4 TABLESPACE=ts1 ENCRYPTION='n';
|
|
ERROR HY000: Source tablespace is encrypted but target tablespace is not.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='n'
|
|
t2 ENCRYPTION='y'
|
|
t3 ENCRYPTION='n'
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
# REVOKE TABLE_ENCRYPTION_ADMIN from user.
|
|
REVOKE TABLE_ENCRYPTION_ADMIN ON *.* FROM u1@localhost;
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
DROP TABLESPACE ts1;
|
|
# [ALTER TABLE] Case 18 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='y';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='y';
|
|
CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENCRYPTION='y';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t2 TABLESPACE=ts1 ENCRYPTION='y';
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t4 TABLESPACE=ts1 ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `ts1` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `ts1` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='y'
|
|
t2 ENCRYPTION='y'
|
|
t3 ENCRYPTION='y'
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
DROP TABLESPACE ts1;
|
|
`````````````````````````````````````````````````````````
|
|
# Using 'innodb_system' tablespace
|
|
`````````````````````````````````````````````````````````
|
|
# table_encryption_privilege_check=OFF and default per-db encryption OFF
|
|
# [ALTER TABLE] Case 19 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='n';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='n';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_system ENCRYPTION='n';
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_system ENCRYPTION='n';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_system` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_system` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1
|
|
t2
|
|
t3
|
|
t4
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
`````````````````````````````````````````````````````````
|
|
# Creating a encrypted table is rejected in system tablespace
|
|
# [ALTER TABLE] Case 20 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='n';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='n';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_system ENCRYPTION='y';
|
|
ERROR HY000: Request to create 'encrypted' table while using an 'unencrypted' tablespace.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_system ENCRYPTION='y';
|
|
ERROR HY000: Request to create 'encrypted' table while using an 'unencrypted' tablespace.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='y'
|
|
t2
|
|
t3 ENCRYPTION='y'
|
|
t4
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
# [ALTER TABLE] Case 21 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='n';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='y';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_system ENCRYPTION='n';
|
|
ERROR HY000: Source tablespace is encrypted but target tablespace is not.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_system ENCRYPTION='n';
|
|
ERROR HY000: Source tablespace is encrypted but target tablespace is not.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1
|
|
t2 ENCRYPTION='y'
|
|
t3
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
`````````````````````````````````````````````````````````
|
|
# Creating a encrypted table is rejected in system tablespace
|
|
# [ALTER TABLE] Case 22 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='n';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='y';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_system ENCRYPTION='y';
|
|
ERROR HY000: Request to create 'encrypted' table while using an 'unencrypted' tablespace.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_system ENCRYPTION='y';
|
|
ERROR HY000: Request to create 'encrypted' table while using an 'unencrypted' tablespace.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='y'
|
|
t2 ENCRYPTION='y'
|
|
t3 ENCRYPTION='y'
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
`````````````````````````````````````````````````````````
|
|
# table_encryption_privilege_check=OFF and default per-db encryption ON
|
|
# [ALTER TABLE] Case 23 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='y';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='n';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_system ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_system ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_system` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='n' */
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_system` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='n' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='n'
|
|
t2 ENCRYPTION='n'
|
|
t3 ENCRYPTION='n'
|
|
t4 ENCRYPTION='n'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
`````````````````````````````````````````````````````````
|
|
# Creating a encrypted table is rejected in system tablespace
|
|
# [ALTER TABLE] Case 24 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='y';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='n';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_system ENCRYPTION='y';
|
|
ERROR HY000: Request to create 'encrypted' table while using an 'unencrypted' tablespace.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_system ENCRYPTION='y';
|
|
ERROR HY000: Request to create 'encrypted' table while using an 'unencrypted' tablespace.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='n' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='y'
|
|
t2 ENCRYPTION='n'
|
|
t3 ENCRYPTION='y'
|
|
t4 ENCRYPTION='n'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
# [ALTER TABLE] Case 25 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='y';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='y';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_system ENCRYPTION='n';
|
|
ERROR HY000: Source tablespace is encrypted but target tablespace is not.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_system ENCRYPTION='n';
|
|
ERROR HY000: Source tablespace is encrypted but target tablespace is not.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='n'
|
|
t2 ENCRYPTION='y'
|
|
t3 ENCRYPTION='n'
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
`````````````````````````````````````````````````````````
|
|
# Creating a encrypted table is rejected in system tablespace
|
|
# [ALTER TABLE] Case 26 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='y';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='y';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_system ENCRYPTION='y';
|
|
ERROR HY000: Request to create 'encrypted' table while using an 'unencrypted' tablespace.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_system ENCRYPTION='y';
|
|
ERROR HY000: Request to create 'encrypted' table while using an 'unencrypted' tablespace.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='y'
|
|
t2 ENCRYPTION='y'
|
|
t3 ENCRYPTION='y'
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
`````````````````````````````````````````````````````````
|
|
# table_encryption_privilege_check=ON and default per-db encryption OFF
|
|
# [ALTER TABLE] Case 27 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='n';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='n';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_system ENCRYPTION='n';
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_system ENCRYPTION='n';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_system` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_system` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1
|
|
t2
|
|
t3
|
|
t4
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
`````````````````````````````````````````````````````````
|
|
# Request to create encrypted table to unencrypted database is rejected.
|
|
# [ALTER TABLE] Case 28 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='n';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='n';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ERROR HY000: Table encryption differ from its database default encryption, and user doesn't have enough privilege.
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_system ENCRYPTION='y';
|
|
ERROR HY000: Request to create 'encrypted' table while using an 'unencrypted' tablespace.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ERROR HY000: Table encryption differ from its database default encryption, and user doesn't have enough privilege.
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_system ENCRYPTION='y';
|
|
ERROR HY000: Request to create 'encrypted' table while using an 'unencrypted' tablespace.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1
|
|
t2
|
|
t3
|
|
t4
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
`````````````````````````````````````````````````````````
|
|
# Creating a encrypted table is rejected in system tablespace
|
|
# [ALTER TABLE] Case 29 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='n';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='n';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
# Grant TABLE_ENCRYPTION_ADMIN if requested.
|
|
GRANT TABLE_ENCRYPTION_ADMIN ON *.* TO u1@localhost;
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_system ENCRYPTION='y';
|
|
ERROR HY000: Request to create 'encrypted' table while using an 'unencrypted' tablespace.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_system ENCRYPTION='y';
|
|
ERROR HY000: Request to create 'encrypted' table while using an 'unencrypted' tablespace.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='y'
|
|
t2
|
|
t3 ENCRYPTION='y'
|
|
t4
|
|
# Cleanup
|
|
# REVOKE TABLE_ENCRYPTION_ADMIN from user.
|
|
REVOKE TABLE_ENCRYPTION_ADMIN ON *.* FROM u1@localhost;
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
# [ALTER TABLE] Case 30 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='n';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='y';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_system ENCRYPTION='n';
|
|
ERROR HY000: Source tablespace is encrypted but target tablespace is not.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_system ENCRYPTION='n';
|
|
ERROR HY000: Source tablespace is encrypted but target tablespace is not.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1
|
|
t2 ENCRYPTION='y'
|
|
t3
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
`````````````````````````````````````````````````````````
|
|
# Creating a encrypted table is rejected in system tablespace
|
|
# [ALTER TABLE] Case 31 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='n';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='y';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_system ENCRYPTION='y';
|
|
ERROR HY000: Request to create 'encrypted' table while using an 'unencrypted' tablespace.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_system ENCRYPTION='y';
|
|
ERROR HY000: Request to create 'encrypted' table while using an 'unencrypted' tablespace.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='y'
|
|
t2 ENCRYPTION='y'
|
|
t3 ENCRYPTION='y'
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
`````````````````````````````````````````````````````````
|
|
# table_encryption_privilege_check=ON and default per-db encryption ON
|
|
# [ALTER TABLE] Case 32 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='y';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='n';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_system ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_system ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_system` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='n' */
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_system` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='n' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='n'
|
|
t2 ENCRYPTION='n'
|
|
t3 ENCRYPTION='n'
|
|
t4 ENCRYPTION='n'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
`````````````````````````````````````````````````````````
|
|
# Creating a encrypted table is rejected in system tablespace
|
|
# [ALTER TABLE] Case 33 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='y';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='n';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_system ENCRYPTION='y';
|
|
ERROR HY000: Request to create 'encrypted' table while using an 'unencrypted' tablespace.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_system ENCRYPTION='y';
|
|
ERROR HY000: Request to create 'encrypted' table while using an 'unencrypted' tablespace.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='n' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='y'
|
|
t2 ENCRYPTION='n'
|
|
t3 ENCRYPTION='y'
|
|
t4 ENCRYPTION='n'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
`````````````````````````````````````````````````````````
|
|
# Request to create unencrypted table under database with default
|
|
# encryption=ON is rejected.
|
|
# [ALTER TABLE] Case 34 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='y';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='y';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ERROR HY000: Table encryption differ from its database default encryption, and user doesn't have enough privilege.
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_system ENCRYPTION='n';
|
|
ERROR HY000: Source tablespace is encrypted but target tablespace is not.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ERROR HY000: Table encryption differ from its database default encryption, and user doesn't have enough privilege.
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_system ENCRYPTION='n';
|
|
ERROR HY000: Source tablespace is encrypted but target tablespace is not.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='y'
|
|
t2 ENCRYPTION='y'
|
|
t3 ENCRYPTION='y'
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
# [ALTER TABLE] Case 35 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='y';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='y';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
# Grant TABLE_ENCRYPTION_ADMIN if requested.
|
|
GRANT TABLE_ENCRYPTION_ADMIN ON *.* TO u1@localhost;
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_system ENCRYPTION='n';
|
|
ERROR HY000: Source tablespace is encrypted but target tablespace is not.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_system ENCRYPTION='n';
|
|
ERROR HY000: Source tablespace is encrypted but target tablespace is not.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='n'
|
|
t2 ENCRYPTION='y'
|
|
t3 ENCRYPTION='n'
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
# REVOKE TABLE_ENCRYPTION_ADMIN from user.
|
|
REVOKE TABLE_ENCRYPTION_ADMIN ON *.* FROM u1@localhost;
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
`````````````````````````````````````````````````````````
|
|
# Creating a encrypted table is rejected in system tablespace
|
|
# [ALTER TABLE] Case 36 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='y';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='y';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_system ENCRYPTION='y';
|
|
ERROR HY000: Request to create 'encrypted' table while using an 'unencrypted' tablespace.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_system ENCRYPTION='y';
|
|
ERROR HY000: Request to create 'encrypted' table while using an 'unencrypted' tablespace.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='y'
|
|
t2 ENCRYPTION='y'
|
|
t3 ENCRYPTION='y'
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
`````````````````````````````````````````````````````````
|
|
# Test using 'innodb_file_per_table'
|
|
`````````````````````````````````````````````````````````
|
|
# table_encryption_privilege_check=OFF and default per-db encryption OFF
|
|
# [ALTER TABLE] Case 37 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='n';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='n';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1
|
|
t2
|
|
t3
|
|
t4
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
# [ALTER TABLE] Case 38 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='n';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='n';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='y'
|
|
t2 ENCRYPTION='y'
|
|
t3 ENCRYPTION='y'
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
# [ALTER TABLE] Case 39 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='n';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='y';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1
|
|
t2
|
|
t3
|
|
t4
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
# [ALTER TABLE] Case 40 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='n';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='y';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='y'
|
|
t2 ENCRYPTION='y'
|
|
t3 ENCRYPTION='y'
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
`````````````````````````````````````````````````````````
|
|
# table_encryption_privilege_check=OFF and default per-db encryption ON
|
|
# [ALTER TABLE] Case 41 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='y';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='n';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='n'
|
|
t2 ENCRYPTION='n'
|
|
t3 ENCRYPTION='n'
|
|
t4 ENCRYPTION='n'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
# [ALTER TABLE] Case 42 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='y';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='n';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='y'
|
|
t2 ENCRYPTION='y'
|
|
t3 ENCRYPTION='y'
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
# [ALTER TABLE] Case 43 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='y';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='y';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='n'
|
|
t2 ENCRYPTION='n'
|
|
t3 ENCRYPTION='n'
|
|
t4 ENCRYPTION='n'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
# [ALTER TABLE] Case 44 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='y';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='y';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='y'
|
|
t2 ENCRYPTION='y'
|
|
t3 ENCRYPTION='y'
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
`````````````````````````````````````````````````````````
|
|
# table_encryption_privilege_check=ON and default per-db encryption OFF
|
|
# [ALTER TABLE] Case 45 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='n';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='n';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1
|
|
t2
|
|
t3
|
|
t4
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
`````````````````````````````````````````````````````````
|
|
# Request to create encrypted table to database with default
|
|
# encryption=OFF is rejected.
|
|
# [ALTER TABLE] Case 46 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='n';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='n';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ERROR HY000: Table encryption differ from its database default encryption, and user doesn't have enough privilege.
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ERROR HY000: Table encryption differ from its database default encryption, and user doesn't have enough privilege.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ERROR HY000: Table encryption differ from its database default encryption, and user doesn't have enough privilege.
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ERROR HY000: Table encryption differ from its database default encryption, and user doesn't have enough privilege.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1
|
|
t2
|
|
t3
|
|
t4
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
# [ALTER TABLE] Case 47 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='n';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='n';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='n';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
# Grant TABLE_ENCRYPTION_ADMIN if requested.
|
|
GRANT TABLE_ENCRYPTION_ADMIN ON *.* TO u1@localhost;
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='y'
|
|
t2 ENCRYPTION='y'
|
|
t3 ENCRYPTION='y'
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
# REVOKE TABLE_ENCRYPTION_ADMIN from user.
|
|
REVOKE TABLE_ENCRYPTION_ADMIN ON *.* FROM u1@localhost;
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
# [ALTER TABLE] Case 48 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='n';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='y';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1
|
|
t2
|
|
t3
|
|
t4
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
# [ALTER TABLE] Case 49 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='n';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='y';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='y'
|
|
t2 ENCRYPTION='y'
|
|
t3 ENCRYPTION='y'
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
`````````````````````````````````````````````````````````
|
|
# table_encryption_privilege_check=ON and default per-db encryption ON
|
|
# [ALTER TABLE] Case 50 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='y';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='n';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='n'
|
|
t2 ENCRYPTION='n'
|
|
t3 ENCRYPTION='n'
|
|
t4 ENCRYPTION='n'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
# [ALTER TABLE] Case 51 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='y';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='n';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='n';
|
|
Warnings:
|
|
Warning 3824 Creating an unencrypted table in a database with default encryption enabled.
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='y'
|
|
t2 ENCRYPTION='y'
|
|
t3 ENCRYPTION='y'
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
`````````````````````````````````````````````````````````
|
|
# Request to create unencrypted table to database with default
|
|
# encryption=ON is rejected.
|
|
# [ALTER TABLE] Case 52 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='y';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='y';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ERROR HY000: Table encryption differ from its database default encryption, and user doesn't have enough privilege.
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ERROR HY000: Table encryption differ from its database default encryption, and user doesn't have enough privilege.
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ERROR HY000: Table encryption differ from its database default encryption, and user doesn't have enough privilege.
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ERROR HY000: Table encryption differ from its database default encryption, and user doesn't have enough privilege.
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `tsA` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!80016 ENCRYPTION='y' */
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='y'
|
|
t2 ENCRYPTION='y'
|
|
t3 ENCRYPTION='y'
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
# [ALTER TABLE] Case 53 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='y';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='y';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
# Grant TABLE_ENCRYPTION_ADMIN if requested.
|
|
GRANT TABLE_ENCRYPTION_ADMIN ON *.* TO u1@localhost;
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_file_per_table ENCRYPTION='n';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='n'
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='n'
|
|
t2 ENCRYPTION='n'
|
|
t3 ENCRYPTION='n'
|
|
t4 ENCRYPTION='n'
|
|
# Cleanup
|
|
# REVOKE TABLE_ENCRYPTION_ADMIN from user.
|
|
REVOKE TABLE_ENCRYPTION_ADMIN ON *.* FROM u1@localhost;
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
# [ALTER TABLE] Case 54 )
|
|
`````````````````````````````````````````````````````````
|
|
CREATE DATABASE db1 DEFAULT ENCRYPTION='y';
|
|
CREATE TABLESPACE tsA ADD DATAFILE 'ts_a.ibd' ENCRYPTION='y';
|
|
CREATE TABLE db1.t1 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t2 (f1 int) ENCRYPTION='y';
|
|
CREATE TABLE db1.t3 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
CREATE TABLE db1.t4 (f1 int) TABLESPACE=tsA ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=true;
|
|
# Run ALTER TABLE and check for errors/warnings
|
|
ALTER TABLE db1.t1 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t2 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t3 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
ALTER TABLE db1.t4 TABLESPACE=innodb_file_per_table ENCRYPTION='y';
|
|
SET GLOBAL table_encryption_privilege_check=false;
|
|
# Verify the ENCRYPTION clause value.
|
|
SHOW CREATE TABLE db1.t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t3;
|
|
Table Create Table
|
|
t3 CREATE TABLE `t3` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SHOW CREATE TABLE db1.t4;
|
|
Table Create Table
|
|
t4 CREATE TABLE `t4` (
|
|
`f1` int(11) DEFAULT NULL
|
|
) /*!50100 TABLESPACE `innodb_file_per_table` */ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='y'
|
|
SELECT TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_SCHEMA='db1';
|
|
TABLE_NAME CREATE_OPTIONS
|
|
t1 ENCRYPTION='y'
|
|
t2 ENCRYPTION='y'
|
|
t3 ENCRYPTION='y'
|
|
t4 ENCRYPTION='y'
|
|
# Cleanup
|
|
DROP DATABASE db1;
|
|
DROP TABLESPACE tsA;
|
|
# Cleanup
|
|
DROP USER u1@localhost;
|
|
SET GLOBAL debug= '-d,skip_table_encryption_admin_check_for_set';
|