Encrypted general tablespaces
1. Extend `CREATE TABLESPACE' statement to accept `ENCRTYPTIION'
option
2. Pass encryption option to InnoDB handler and store it into tablespace
flags
3. Make sure table flags and tablespace flags are in sync regarding
encryption
4. Create test case to cover various scenarios of creating/altering
tables, for example:
- creating encrypted/
encrypted/
table flags)
- moving tables between tablespaces
- discarding tables
Make sure that server behave adequately.
5. Make sure that crash recovery works
6. Check that I_S tables reflect all changes
Table and tablespace must have compatible ENCRYPTION flags. For example:
,----
| CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENCRYPTION="Y";
|
| -- ERROR - we must specify ENCRYPTION="Y" for table explicitly?
| CREATE TABLE t1 (a TEXT) TABLESPACE ts1;
|
| -- SUCCESS
| CREATE TABLE t2 (a TEXT) TABLESPACE ts1 ENCRYPTION="Y";
|
| -- ERROR
| CREATE TABLE t3 (a TEXT) TABLESPACE ts1 ENCRYPTION="N";
`----
,----
| CREATE TABLESPACE ts1 ADD DATAFILE 'ts1.ibd' ENCRYPTION="N";
|
| -- SUCCESS
| CREATE TABLE t1 (a TEXT) TABLESPACE ts1;
|
| -- ERROR
| CREATE TABLE t2 (a TEXT) TABLESPACE ts1 ENCRYPTION="Y";
|
| -- SUCCESS
| CREATE TABLE t3 (a TEXT) TABLESPACE ts1 ENCRYPTION="N";
`----
Blueprint information
- Status:
- Complete
- Approver:
- None
- Priority:
- High
- Drafter:
- Sergei Glushchenko
- Direction:
- Approved
- Assignee:
- Sergei Glushchenko
- Definition:
- Approved
- Series goal:
- Accepted for 5.7
- Implementation:
- Implemented
- Milestone target:
- 5.7.20-18
- Started by
- Laurynas Biveinis
- Completed by
- Sergei Glushchenko