mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
6 Hỗ trợ mã hóa dữ liệu-AT-Rest cho các không gian bảng cho mỗi bảng, không gian bảng chung, không gian bảng hệ thống mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
7, nhật ký làm lại và nhật ký hoàn tác.Kể từ MySQL 8.0.16, việc thiết lập mặc định mã hóa cho các lược đồ và không gian bảng chung cũng được hỗ trợ, cho phép các DBA kiểm soát xem các bảng được tạo trong các lược đồ và bảng tính được mã hóa hay không.
mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
6 Các tính năng và khả năng mã hóa dữ liệu được thiết kế lại được mô tả theo các chủ đề sau trong phần này.Về mã hóa dữ liệu-at-rest
Điều kiện tiên quyết mã hóa
Xác định mặc định mã hóa cho các lược đồ và không gian bảng chung
Mã hóa không gian bảng tập tin-per-per
Mã hóa không gian bảng chung
Mã hóa tệp DoubleWrite
Mã hóa không gian bảng hệ thống MySQL
Làm lại mã hóa nhật ký
Hoàn tác mã hóa nhật ký
Xoay chính
Mã hóa và phục hồi
Xuất các không gian bảng được mã hóa
Mã hóa và sao chép
Xác định các không gian và lược đồ được mã hóa
Giám sát tiến trình mã hóa
Ghi chú sử dụng mã hóa
Giới hạn mã hóa
Về mã hóa dữ liệu-at-rest
Điều kiện tiên quyết mã hóamaster key rotation.
Xác định mặc định mã hóa cho các lược đồ và không gian bảng chung
Mã hóa không gian bảng tập tin-per-per
Mã hóa không gian bảng chung
Mã hóa tệp DoubleWrite
Mã hóa không gian bảng hệ thống MySQL
Làm lại mã hóa nhật ký
Hoàn tác mã hóa nhật ký
Xoay chính
Mã hóa và phục hồi
Xuất các không gian bảng được mã hóa
Mã hóa và sao chép“MySQL Enterprise Transparent Data Encryption [TDE]”.
Xác định các không gian và lược đồ được mã hóa
Giám sát tiến trình mã hóa
Điều kiện tiên quyết mã hóa
Xác định mặc định mã hóa cho các lược đồ và không gian bảng chung
Mã hóa không gian bảng tập tin-per-per
Mã hóa không gian bảng chung
Mã hóa tệp DoubleWrite
Khi mã hóa dữ liệu sản xuất, hãy đảm bảo rằng bạn thực hiện các bước để ngăn ngừa mất khóa mã hóa chính. Nếu khóa mã hóa chính bị mất, dữ liệu được lưu trữ trong các tệp không gian bảng được mã hóa là không thể giải thích được. Nếu bạn sử dụng thành phần
1 hoặcmysql> CREATE TABLE t1 [c1 INT] ENCRYPTION = 'Y';
3 hoặc pluginmysql> CREATE TABLE t1 [c1 INT] ENCRYPTION = 'Y';
2 hoặcmysql> CREATE TABLE t1 [c1 INT] ENCRYPTION = 'Y';
4, hãy tạo bản sao lưu tệp dữ liệu Keyring ngay sau khi tạo không gian bảng được mã hóa đầu tiên, trước khi xoay khóa chính và sau khi xoay khóa chính. Đối với mỗi thành phần, tệp cấu hình của nó cho biết vị trí tệp dữ liệu. Tùy chọn cấu hìnhmysql> CREATE TABLE t1 [c1 INT] ENCRYPTION = 'Y';
8 xác định vị trí tệp dữ liệu Keyring cho pluginmysql> ALTER TABLE t1 ENCRYPTION = 'Y';
2. Tùy chọn cấu hìnhmysql> CREATE TABLE t1 [c1 INT] ENCRYPTION = 'Y';
0 xác định vị trí tệp dữ liệu khóa cho pluginmysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
4. Nếu bạn sử dụng pluginmysql> CREATE TABLE t1 [c1 INT] ENCRYPTION = 'Y';
5 hoặcmysql> CREATE TABLE t1 [c1 INT] ENCRYPTION = 'Y';
6, hãy đảm bảo rằng bạn đã thực hiện cấu hình cần thiết. Để biết hướng dẫn, xem Phần & NBSP; 6.4.4, Keys Keyring của MySQL.If the master encryption key is lost, data stored in encrypted tablespace files is unrecoverable. If you use themysql> CREATE TABLE t1 [c1 INT] ENCRYPTION = 'Y';
1 ormysql> CREATE TABLE t1 [c1 INT] ENCRYPTION = 'Y';
3 component, or themysql> CREATE TABLE t1 [c1 INT] ENCRYPTION = 'Y';
2 ormysql> CREATE TABLE t1 [c1 INT] ENCRYPTION = 'Y';
4 plugin, create a backup of the keyring data file immediately after creating the first encrypted tablespace, before master key rotation, and after master key rotation. For each component, its configuration file indicates the data file location. Themysql> CREATE TABLE t1 [c1 INT] ENCRYPTION = 'Y';
8 configuration option defines the keyring data file location for themysql> ALTER TABLE t1 ENCRYPTION = 'Y';
2 plugin. Themysql> CREATE TABLE t1 [c1 INT] ENCRYPTION = 'Y';
0 configuration option defines the keyring data file location for themysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
4 plugin. If you use themysql> CREATE TABLE t1 [c1 INT] ENCRYPTION = 'Y';
5 ormysql> CREATE TABLE t1 [c1 INT] ENCRYPTION = 'Y';
6 plugin, ensure that you have performed the necessary configuration. For instructions, see Section 6.4.4, “The MySQL Keyring”.mysql> CREATE TABLE t1 [c1 INT] ENCRYPTION = 'Y';
Xác định mặc định mã hóa cho các lược đồ và không gian bảng chung
Kể từ MySQL 8.0.16, biến hệ thống
mysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
4 xác định cài đặt mã hóa mặc định cho các lược đồ và không gian bảng chung. Các hoạt động mysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
5 và mysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
6 Áp dụng cài đặt mysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
4 khi mệnh đề mysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
8 không được chỉ định rõ ràng.Các hoạt động
mysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
9 và mysql> ALTER TABLESPACE mysql ENCRYPTION = 'N';
0 không áp dụng cài đặt mysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
4. Một mệnh đề mysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
8 phải được chỉ định rõ ràng để thay đổi mã hóa của một lược đồ hiện có hoặc không gian bảng chung.Biến
mysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
4 có thể được đặt cho kết nối máy khách riêng lẻ hoặc toàn cầu sử dụng cú pháp mysql> ALTER TABLESPACE mysql ENCRYPTION = 'N';
4. Ví dụ: câu lệnh sau cho phép mã hóa Lược đồ mặc định và không gian bảng trên toàn cầu:mysql> SET GLOBAL default_table_encryption=ON;
Cài đặt mã hóa mặc định cho lược đồ cũng có thể được xác định bằng mệnh đề
mysql> ALTER TABLESPACE mysql ENCRYPTION = 'N';
5 khi tạo hoặc thay đổi lược đồ, như trong ví dụ này:mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
Nếu mệnh đề
mysql> ALTER TABLESPACE mysql ENCRYPTION = 'N';
5 không được chỉ định khi tạo lược đồ, cài đặt mysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
4 được áp dụng. Điều khoản mysql> ALTER TABLESPACE mysql ENCRYPTION = 'N';
5 phải được chỉ định để thay đổi mã hóa mặc định của lược đồ hiện có. Mặt khác, lược đồ giữ lại cài đặt mã hóa hiện tại của nó.Theo mặc định, một bảng kế thừa cài đặt mã hóa của lược đồ hoặc không gian bảng chung được tạo trong. Ví dụ, một bảng được tạo trong lược đồ hỗ trợ mã hóa được mã hóa theo mặc định. Hành vi này cho phép DBA kiểm soát việc sử dụng mã hóa bảng bằng cách xác định và thực thi lược đồ và mặc định mã hóa không gian bảng chung.
Mặc định mã hóa được thực thi bằng cách bật biến hệ thống
mysql> ALTER TABLESPACE mysql ENCRYPTION = 'N';
9. Khi mysql> ALTER TABLESPACE mysql ENCRYPTION = 'N';
9 được bật, kiểm tra đặc quyền xảy ra khi tạo hoặc thay đổi lược đồ hoặc không gian bảng chung với cài đặt mã hóa khác với cài đặt mysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
4 hoặc khi tạo hoặc thay đổi bảng với cài đặt mã hóa khác với mã hóa lược đồ mặc định. Khi mysql> ALTER TABLESPACE mysql ENCRYPTION = 'N';
9 bị vô hiệu hóa [mặc định], kiểm tra đặc quyền không xảy ra và các hoạt động được đề cập trước đó được phép tiến hành cảnh báo.Đặc quyền
mysql> ALTER INSTANCE ROTATE INNODB MASTER KEY;
3 được yêu cầu để ghi đè cài đặt mã hóa mặc định khi mysql> ALTER TABLESPACE mysql ENCRYPTION = 'N';
9 được bật. DBA có thể cấp đặc quyền này để cho phép người dùng đi chệch khỏi cài đặt mysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
4 khi tạo hoặc thay đổi lược đồ hoặc không gian bảng chung hoặc đi chệch khỏi mã hóa lược đồ mặc định khi tạo hoặc thay đổi bảng. Đặc quyền này không cho phép lệch khỏi việc mã hóa một không gian bảng chung khi tạo hoặc thay đổi bảng. Một bảng phải có cài đặt mã hóa giống như không gian bảng chung mà nó nằm trong.Mã hóa không gian bảng tập tin-per-per
Kể từ MySQL 8.0.16, một không gian bảng mỗi bảng kế thừa mã hóa mặc định của lược đồ trong đó bảng được tạo trừ khi một mệnh đề
mysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
8 được chỉ định rõ ràng trong câu lệnh mysql> ALTER INSTANCE ROTATE INNODB MASTER KEY;
7. Trước MySQL 8.0.16, mệnh đề mysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
8 phải được chỉ định để cho phép mã hóa.mysql> CREATE TABLE t1 [c1 INT] ENCRYPTION = 'Y';
Để thay đổi mã hóa không gian bảng cho mỗi bảng hiện có, một mệnh đề
mysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
8 phải được chỉ định.mysql> ALTER TABLE t1 ENCRYPTION = 'Y';
Kể từ MySQL 8.0.16, nếu biến
mysql> ALTER TABLESPACE mysql ENCRYPTION = 'N';
9 được bật, việc chỉ định mệnh đề mysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
8 với một cài đặt khác với mã hóa lược đồ mặc định đòi hỏi đặc quyền mysql> ALTER INSTANCE ROTATE INNODB MASTER KEY;
3. Xem xác định mặc định mã hóa cho các lược đồ và không gian bảng chung.Mã hóa tệp DoubleWrite
Hỗ trợ mã hóa cho các tệp DoubleWrite có sẵn kể từ MySQL 8.0,0.23.
mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
6 Tự động mã hóa các trang tệp DoubleWrite thuộc về không gian bảng được mã hóa. Không có hành động là bắt buộc. Các trang tệp DoubleWrite được mã hóa bằng khóa mã hóa của không gian bảng liên quan. Cùng một trang được mã hóa được ghi vào tệp dữ liệu không gian bảng cũng được ghi vào tệp DoubleWrite. Các trang tệp DoubleWrite thuộc về một không gian bảng không được mã hóa vẫn chưa được mã hóa.Trong quá trình phục hồi, các trang tệp DoubleWrite được mã hóa không được mã hóa và kiểm tra tham nhũng.
Mã hóa không gian bảng hệ thống MySQL
Hỗ trợ mã hóa cho không gian bảng hệ thống
mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
7 có sẵn kể từ MySQL 8.0.16.Không gian bảng hệ thống
mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
7 chứa cơ sở dữ liệu hệ thống mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
7 và các bảng từ điển dữ liệu MySQL. Nó không được mã hóa theo mặc định. Để cho phép mã hóa không gian bảng hệ thống mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
7, chỉ định tên bảng và tùy chọn mysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
8 trong câu lệnh mysql> SELECT SPACE, NAME, SPACE_TYPE, ENCRYPTION FROM INFORMATION_SCHEMA.INNODB_TABLESPACES
WHERE ENCRYPTION='Y'\G
*************************** 1. row ***************************
SPACE: 4294967294
NAME: mysql
SPACE_TYPE: General
ENCRYPTION: Y
*************************** 2. row ***************************
SPACE: 2
NAME: test/t1
SPACE_TYPE: Single
ENCRYPTION: Y
*************************** 3. row ***************************
SPACE: 3
NAME: ts1
SPACE_TYPE: General
ENCRYPTION: Y
9.mysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
Để vô hiệu hóa mã hóa cho không gian bảng hệ thống
mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
7, đặt mysql> SELECT TABLE_SCHEMA, TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
WHERE CREATE_OPTIONS LIKE '%ENCRYPTION%';
+--------------+------------+----------------+
| TABLE_SCHEMA | TABLE_NAME | CREATE_OPTIONS |
+--------------+------------+----------------+
| test | t1 | ENCRYPTION="Y" |
+--------------+------------+----------------+
1 bằng câu lệnh mysql> SELECT SPACE, NAME, SPACE_TYPE, ENCRYPTION FROM INFORMATION_SCHEMA.INNODB_TABLESPACES
WHERE ENCRYPTION='Y'\G
*************************** 1. row ***************************
SPACE: 4294967294
NAME: mysql
SPACE_TYPE: General
ENCRYPTION: Y
*************************** 2. row ***************************
SPACE: 2
NAME: test/t1
SPACE_TYPE: Single
ENCRYPTION: Y
*************************** 3. row ***************************
SPACE: 3
NAME: ts1
SPACE_TYPE: General
ENCRYPTION: Y
9.mysql> ALTER TABLESPACE mysql ENCRYPTION = 'N';
Kích hoạt hoặc vô hiệu hóa mã hóa cho không gian bảng hệ thống
mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
7 yêu cầu đặc quyền mysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
5 trên tất cả các bảng trong trường hợp [mysql> SELECT TABLE_SCHEMA, TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
WHERE CREATE_OPTIONS LIKE '%ENCRYPTION%';
+--------------+------------+----------------+
| TABLE_SCHEMA | TABLE_NAME | CREATE_OPTIONS |
+--------------+------------+----------------+
| test | t1 | ENCRYPTION="Y" |
+--------------+------------+----------------+
5.Làm lại mã hóa nhật ký
Redo Log Dữ liệu mã hóa được bật bằng tùy chọn cấu hình
mysql> SELECT TABLE_SCHEMA, TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
WHERE CREATE_OPTIONS LIKE '%ENCRYPTION%';
+--------------+------------+----------------+
| TABLE_SCHEMA | TABLE_NAME | CREATE_OPTIONS |
+--------------+------------+----------------+
| test | t1 | ENCRYPTION="Y" |
+--------------+------------+----------------+
6. Redo log mã hóa được vô hiệu hóa theo mặc định.Cũng như dữ liệu không gian bảng, việc mã hóa dữ liệu đăng nhập lại xảy ra khi dữ liệu nhật ký làm lại được ghi vào đĩa và giải mã xảy ra khi làm lại dữ liệu nhật ký được đọc từ đĩa. Sau khi làm lại dữ liệu nhật ký được đọc thành bộ nhớ, nó ở dạng không được mã hóa. Dữ liệu làm lại được mã hóa và giải mã bằng khóa mã hóa không gian bảng.
Khi
mysql> SELECT TABLE_SCHEMA, TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
WHERE CREATE_OPTIONS LIKE '%ENCRYPTION%';
+--------------+------------+----------------+
| TABLE_SCHEMA | TABLE_NAME | CREATE_OPTIONS |
+--------------+------------+----------------+
| test | t1 | ENCRYPTION="Y" |
+--------------+------------+----------------+
6 được bật, các trang nhật ký làm lại không được mã hóa có mặt trên đĩa vẫn chưa được mã hóa và các trang nhật ký làm lại mới được viết vào đĩa ở dạng được mã hóa. Tương tự như vậy, khi mysql> SELECT TABLE_SCHEMA, TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
WHERE CREATE_OPTIONS LIKE '%ENCRYPTION%';
+--------------+------------+----------------+
| TABLE_SCHEMA | TABLE_NAME | CREATE_OPTIONS |
+--------------+------------+----------------+
| test | t1 | ENCRYPTION="Y" |
+--------------+------------+----------------+
6 bị vô hiệu hóa, các trang nhật ký đã được mã hóa có mặt trên đĩa vẫn được mã hóa và các trang nhật ký làm lại mới được viết vào đĩa ở dạng không được mã hóa.Cảnh báo
Một hồi quy được giới thiệu trong MySQL 8.0.30 ngăn chặn việc vô hiệu hóa mã hóa nhật ký làm lại sau khi nó được bật. [Lỗi #108052, lỗi #34456802].
Từ MySQL 8.0.30, siêu dữ liệu mã hóa lại, bao gồm khóa mã hóa không gian bảng, được lưu trữ trong tiêu đề của tệp nhật ký làm lại với LSN điểm kiểm tra gần đây nhất. Trước MySQL 8.0.30, siêu dữ liệu mã hóa lại, bao gồm khóa mã hóa không gian bảng, được lưu trữ trong tiêu đề của tệp nhật ký làm lại đầu tiên [
mysql> SELECT TABLE_SCHEMA, TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
WHERE CREATE_OPTIONS LIKE '%ENCRYPTION%';
+--------------+------------+----------------+
| TABLE_SCHEMA | TABLE_NAME | CREATE_OPTIONS |
+--------------+------------+----------------+
| test | t1 | ENCRYPTION="Y" |
+--------------+------------+----------------+
9]. Nếu tệp nhật ký làm lại với siêu dữ liệu mã hóa bị xóa, mã hóa lại đã bị tắt.Sau khi bật lại mã hóa log được bật, khởi động lại thông thường mà không có thành phần hoặc plugin khóa hoặc không có khóa mã hóa là không thể, vì
mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
6 phải có thể quét các trang làm lại trong khi khởi động, điều này là không thể nếu các trang nhật ký làm lại được mã hóa. Không có thành phần hoặc plugin hoặc khóa mã hóa, chỉ có thể khởi động bắt buộc không có nhật ký làm lại [mysql> SELECT SPACE, NAME, SPACE_TYPE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE NAME='test/t1';
+-------+---------+------------+
| SPACE | NAME | SPACE_TYPE |
+-------+---------+------------+
| 3 | test/t1 | Single |
+-------+---------+------------+
1]. Xem Phần & NBSP; 15.21.3, Buộc phục hồi Innodb.Hoàn tác mã hóa nhật ký
Hoàn tác mã hóa dữ liệu nhật ký được bật bằng tùy chọn cấu hình
mysql> SELECT SPACE, NAME, SPACE_TYPE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE NAME='test/t1';
+-------+---------+------------+
| SPACE | NAME | SPACE_TYPE |
+-------+---------+------------+
| 3 | test/t1 | Single |
+-------+---------+------------+
2. Hoàn tác mã hóa nhật ký áp dụng cho các nhật ký hoàn tác cư trú trong các không gian bảng hoàn tác. Xem phần & nbsp; 15.6.3.4, không gian bảng hoàn tác. Hoàn tác mã hóa dữ liệu nhật ký bị tắt theo mặc định.Cũng như dữ liệu không gian bảng, việc mã hóa dữ liệu nhật ký hoàn tác xảy ra khi hoàn tác dữ liệu nhật ký được ghi vào đĩa và giải mã xảy ra khi hoàn tác dữ liệu nhật ký được đọc từ đĩa. Khi hoàn tác dữ liệu nhật ký được đọc vào bộ nhớ, nó ở dạng không được mã hóa. Dữ liệu nhật ký hoàn tác được mã hóa và giải mã bằng khóa mã hóa không gian bảng.
Khi
mysql> SELECT SPACE, NAME, SPACE_TYPE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE NAME='test/t1';
+-------+---------+------------+
| SPACE | NAME | SPACE_TYPE |
+-------+---------+------------+
| 3 | test/t1 | Single |
+-------+---------+------------+
2 được bật, các trang nhật ký chưa được mã hóa có mặt trên đĩa vẫn chưa được mã hóa và các trang nhật ký hoàn tác mới được viết vào đĩa ở dạng được mã hóa. Tương tự như vậy, khi mysql> SELECT SPACE, NAME, SPACE_TYPE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE NAME='test/t1';
+-------+---------+------------+
| SPACE | NAME | SPACE_TYPE |
+-------+---------+------------+
| 3 | test/t1 | Single |
+-------+---------+------------+
2 bị vô hiệu hóa, các trang nhật ký chưa được mã hóa có mặt trên đĩa vẫn được mã hóa và các trang nhật ký hoàn tác mới được viết vào đĩa ở dạng không được mã hóa.Siêu dữ liệu mã hóa nhật ký hoàn tác, bao gồm khóa mã hóa không gian bảng, được lưu trữ trong tiêu đề của tệp nhật ký hoàn tác.
Ghi chú
Khi mã hóa nhật ký hoàn tác bị vô hiệu hóa, máy chủ tiếp tục yêu cầu thành phần hoặc plugin khóa được sử dụng để mã hóa dữ liệu nhật ký hoàn tác cho đến khi các không gian bảng hoàn tác có chứa dữ liệu nhật ký được mã hóa bị cắt. .
Xoay chính
Khóa mã hóa chính phải được xoay định kỳ và bất cứ khi nào bạn nghi ngờ rằng khóa đã bị xâm phạm.
Xoay khóa chính là một hoạt động cấp độ nguyên tử, mức độ. Mỗi lần quay khóa mã hóa chính, tất cả các khóa không gian bảng trong phiên bản MySQL được sao chép lại và lưu lại cho các tiêu đề không gian bảng tương ứng của chúng. Là một hoạt động nguyên tử, việc tái hấp thu phải thành công cho tất cả các phím không gian bảng sau khi một hoạt động xoay được bắt đầu. Nếu vòng quay khóa chính bị gián đoạn do lỗi máy chủ,
mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
6 sẽ thực hiện thao tác chuyển tiếp khi khởi động lại máy chủ. Để biết thêm thông tin, xem mã hóa và phục hồi.Xoay phím mã hóa chính chỉ thay đổi khóa mã hóa chính và tái mã hóa các khóa không gian bảng. Nó không giải mã hoặc mã hóa lại dữ liệu không gian bảng liên quan.
Xoay khóa mã hóa chính yêu cầu đặc quyền
mysql> SELECT SPACE, NAME, SPACE_TYPE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE NAME='test/t1';
+-------+---------+------------+
| SPACE | NAME | SPACE_TYPE |
+-------+---------+------------+
| 3 | test/t1 | Single |
+-------+---------+------------+
6 [hoặc đặc quyền không dùng nữa ____997].Để xoay khóa mã hóa chính, chạy:
mysql> ALTER INSTANCE ROTATE INNODB MASTER KEY;
mysql> SELECT SPACE, NAME, SPACE_TYPE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE NAME='test/t1';
+-------+---------+------------+
| SPACE | NAME | SPACE_TYPE |
+-------+---------+------------+
| 3 | test/t1 | Single |
+-------+---------+------------+
8 hỗ trợ DML đồng thời. Tuy nhiên, nó không thể được chạy đồng thời với các hoạt động mã hóa không gian bảng và khóa được thực hiện để ngăn chặn các xung đột có thể phát sinh từ việc thực hiện đồng thời. Nếu hoạt động mysql> SELECT SPACE, NAME, SPACE_TYPE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE NAME='test/t1';
+-------+---------+------------+
| SPACE | NAME | SPACE_TYPE |
+-------+---------+------------+
| 3 | test/t1 | Single |
+-------+---------+------------+
9 đang chạy, nó phải kết thúc trước khi hoạt động mã hóa không gian bảng có thể tiến hành và ngược lại.Mã hóa và phục hồi
Nếu xảy ra lỗi máy chủ trong quá trình hoạt động mã hóa, thao tác sẽ được tiến hành khi máy chủ được khởi động lại. Đối với các không gian bảng chung, hoạt động mã hóa được nối lại trong một luồng nền từ trang được xử lý cuối cùng.
Nếu xảy ra lỗi máy chủ trong quá trình xoay khóa chính,
mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
6 tiếp tục hoạt động khi khởi động lại máy chủ.Thành phần hoặc plugin Keyring phải được tải trước khi khởi tạo công cụ lưu trữ để thông tin cần thiết để giải mã các trang dữ liệu không gian bảng có thể được lấy từ các tiêu đề không gian bảng trước khi
mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
6 Khởi tạo và phục hồi hoạt động truy cập dữ liệu không gian bảng. [Xem các điều kiện tiên quyết mã hóa.]Khi bắt đầu khởi tạo và phục hồi
mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
6, hoạt động xoay khóa chính sẽ tiếp tục. Do lỗi máy chủ, một số khóa bảng không gian có thể được mã hóa bằng khóa mã hóa chính mới. mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
6 đọc dữ liệu mã hóa từ mỗi tiêu đề không gian bảng và nếu dữ liệu chỉ ra rằng khóa bảng không gian được mã hóa bằng cách sử dụng khóa mã hóa chính cũ, mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
6 lấy khóa cũ từ khóa và sử dụng để giải mã khóa không gian bảng. mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
6 sau đó mã hóa lại khóa không gian bảng bằng khóa mã hóa chính mới và lưu khóa không gian bảng được mã hóa lại trở lại tiêu đề không gian bảng.Xuất các không gian bảng được mã hóa
Xuất bảng không gian chỉ được hỗ trợ cho các không gian bảng cho mỗi bảng.
Khi một không gian bảng được mã hóa được xuất,
mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
6 sẽ tạo một khóa truyền được sử dụng để mã hóa khóa không gian bảng. Khóa không gian bảng được mã hóa và khóa chuyển được lưu trữ trong tệp ____ 107.cfp. Tệp này cùng với tệp không gian bảng được mã hóa được yêu cầu để thực hiện thao tác nhập. Khi nhập, mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
6 sử dụng phím chuyển để giải mã khóa bảng không gian trong tệp ____ 107.cfp. Để biết thông tin liên quan, xem Phần & NBSP; 15.6.1.3, Nhập khẩu bảng InnoDB.transfer key that is used to encrypt the tablespace key. The encrypted tablespace key and transfer key are stored in a mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
07.cfp file.
This file together with the encrypted tablespace file is required to perform an import operation. On import, mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
6 uses the transfer key to decrypt the tablespace key in the mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
07.cfp file. For related information, see Section 15.6.1.3, “Importing InnoDB Tables”. Mã hóa và sao chép
Câu lệnh
10 chỉ được hỗ trợ trong môi trường sao chép trong đó nguồn và bản sao chạy phiên bản MySQL hỗ trợ mã hóa không gian bảng.mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
Các câu lệnh
11 thành công được ghi vào nhật ký nhị phân để sao chép trên các bản sao.mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
Nếu câu lệnh
10 không thành công, nó không được ghi vào nhật ký nhị phân và không được sao chép trên các bản sao.mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
Việc sao chép hoạt động
13 không thành công nếu thành phần hoặc plugin Keyring được cài đặt trên nguồn nhưng không phải trên bản sao.mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
Nếu plugin
2 hoặcmysql> CREATE TABLE t1 [c1 INT] ENCRYPTION = 'Y';
4 được cài đặt trên cả nguồn và bản sao nhưng bản sao không có tệp dữ liệu khóa, câu lệnhmysql> CREATE TABLE t1 [c1 INT] ENCRYPTION = 'Y';
16 được sao chép sẽ tạo tệp dữ liệu khóa trên bản sao, giả sử dữ liệu tệp Keyring không được lưu trong bộ nhớ.mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
16 sử dụng dữ liệu tệp Keyring được lưu trong bộ nhớ, nếu có.mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
Xác định các không gian và lược đồ được mã hóa
Bảng
mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
18, được giới thiệu trong MySQL 8.0.13, bao gồm một cột mysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
8 có thể được sử dụng để xác định các không gian bảng được mã hóa.mysql> SELECT SPACE, NAME, SPACE_TYPE, ENCRYPTION FROM INFORMATION_SCHEMA.INNODB_TABLESPACES
WHERE ENCRYPTION='Y'\G
*************************** 1. row ***************************
SPACE: 4294967294
NAME: mysql
SPACE_TYPE: General
ENCRYPTION: Y
*************************** 2. row ***************************
SPACE: 2
NAME: test/t1
SPACE_TYPE: Single
ENCRYPTION: Y
*************************** 3. row ***************************
SPACE: 3
NAME: ts1
SPACE_TYPE: General
ENCRYPTION: Y
Khi tùy chọn
mysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
8 được chỉ định trong câu lệnh mysql> ALTER INSTANCE ROTATE INNODB MASTER KEY;
7 hoặc mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
22, nó được ghi lại trong cột mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
23 của mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
24. Cột này có thể được truy vấn để xác định các bảng cư trú trong các không gian bảng được mã hóa cho mỗi bảng.mysql> SELECT TABLE_SCHEMA, TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES
WHERE CREATE_OPTIONS LIKE '%ENCRYPTION%';
+--------------+------------+----------------+
| TABLE_SCHEMA | TABLE_NAME | CREATE_OPTIONS |
+--------------+------------+----------------+
| test | t1 | ENCRYPTION="Y" |
+--------------+------------+----------------+
Truy vấn
mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
18 Để truy xuất thông tin về không gian bảng liên quan đến một lược đồ và bảng cụ thể.mysql> SELECT SPACE, NAME, SPACE_TYPE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE NAME='test/t1';
+-------+---------+------------+
| SPACE | NAME | SPACE_TYPE |
+-------+---------+------------+
| 3 | test/t1 | Single |
+-------+---------+------------+
Bạn có thể xác định các lược đồ hỗ trợ mã hóa bằng cách truy vấn bảng
mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
26.mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
0
mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
27 cũng hiển thị mệnh đề mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
28.Giám sát tiến trình mã hóa
Bạn có thể giám sát không gian bảng chung và
mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
7 Tiến trình mã hóa không gian bảng hệ thống bằng Lược đồ hiệu suất.Công cụ sự kiện giai đoạn
mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
30 báo cáo thông tin mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
31 và mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
32 cho các hoạt động mã hóa không gian bảng chung.Ví dụ sau đây cho thấy cách kích hoạt công cụ sự kiện giai đoạn
mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
30 và các bảng tiêu dùng liên quan để giám sát không gian bảng chung hoặc tiến trình mã hóa không gian bảng hệ thống mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
7. Để biết thông tin về các công cụ sự kiện giai đoạn Lược đồ hiệu suất và người tiêu dùng liên quan, xem Phần & NBSP; 27.12.5, Bảng sự kiện SPORM SCHEMA SCHEMA.Bật công cụ
35:mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
1mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
Cho phép các bảng tiêu dùng sự kiện giai đoạn, bao gồm
36,mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
37 vàmysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
38.mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
2mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
Chạy một hoạt động mã hóa không gian bảng. Trong ví dụ này, một không gian bảng chung có tên
39 được mã hóa.mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
3mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
Kiểm tra tiến trình của hoạt động mã hóa bằng cách truy vấn bảng Lược đồ hiệu suất
36.mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
31 báo cáo tổng số trang trong không gian bảng.mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
32 báo cáo số lượng trang được xử lý.mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
4mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
Bảng
36 trả về một bộ trống nếu hoạt động mã hóa đã hoàn thành. Trong trường hợp này, bạn có thể kiểm tra bảngmysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
37 để xem dữ liệu sự kiện cho hoạt động đã hoàn thành. Ví dụ:mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
5mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
Ghi chú sử dụng mã hóa
Lập kế hoạch phù hợp khi thay đổi một không gian bảng mỗi bảng hiện có với tùy chọn
8. Các bảng cư trú trong các không gian bảng tệp cho mỗi bảng được xây dựng lại bằng thuật toánmysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
46. Thuật toánmysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
47 được sử dụng khi thay đổi thuộc tínhmysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
8 của một không gian bảng chung hoặc không gian bảng hệ thốngmysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
7. Thuật toánmysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
47 cho phép DML đồng thời trên các bảng nằm trong không gian bảng chung. DDL đồng thời bị chặn.mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
Khi một không gian bảng chung hoặc không gian bảng hệ thống
7 được mã hóa, tất cả các bảng nằm trong không gian bảng được mã hóa. Tương tự như vậy, một bảng được tạo trong một không gian bảng được mã hóa được mã hóa.mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
Nếu máy chủ thoát hoặc bị dừng trong quá trình hoạt động bình thường, nên khởi động lại máy chủ bằng cách sử dụng cùng một cài đặt mã hóa được cấu hình trước đó.
Khóa mã hóa chính đầu tiên được tạo khi không gian bảng mới hoặc hiện tại đầu tiên được mã hóa.
Phím xoay vòng kiểm tra lại các khóa không gian bảng nhưng không thay đổi khóa không gian bảng. Để thay đổi khóa không gian bảng, bạn phải vô hiệu hóa và kích hoạt lại mã hóa. Đối với các không gian bảng tệp cho mỗi bảng, việc viết lại không gian bảng là một hoạt động
52 xây dựng lại bảng. Đối với các không gian bảng chung và không gian bảng hệ thốngmysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
7, đó là một hoạt độngmysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
54, không yêu cầu xây dựng lại các bảng nằm trong không gian bảng.mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
Nếu một bảng được tạo bằng cả hai tùy chọn
55 vàmysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
8, nén được thực hiện trước khi dữ liệu không gian bảng được mã hóa.mysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
Nếu một tệp dữ liệu khóa [tệp được đặt tên bởi
8 hoặcmysql> ALTER TABLE t1 ENCRYPTION = 'Y';
0] trống hoặc thiếu, việc thực hiện đầu tiên củamysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
10 sẽ tạo khóa mã hóa chính.mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
Gỡ cài đặt thành phần
1 hoặcmysql> CREATE TABLE t1 [c1 INT] ENCRYPTION = 'Y';
3 không xóa tệp dữ liệu Keyring hiện có. Gỡ cài đặt pluginmysql> CREATE TABLE t1 [c1 INT] ENCRYPTION = 'Y';
2 hoặcmysql> CREATE TABLE t1 [c1 INT] ENCRYPTION = 'Y';
4 không xóa tệp dữ liệu Keyring hiện có.mysql> CREATE TABLE t1 [c1 INT] ENCRYPTION = 'Y';
Bạn nên đặt một tệp dữ liệu khóa trong cùng thư mục với các tệp dữ liệu không gian bảng.
Việc sửa đổi cài đặt
8 hoặcmysql> ALTER TABLE t1 ENCRYPTION = 'Y';
0 khi chạy hoặc khi khởi động lại máy chủ có thể khiến các không gian bảng được mã hóa trước đó không thể truy cập được, dẫn đến dữ liệu bị mất.mysql> ALTER TABLESPACE mysql ENCRYPTION = 'Y';
Mã hóa được hỗ trợ cho các bảng chỉ mục
6mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
67 được tạo ngầm khi thêm chỉ mụcmysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
67. Để biết thông tin liên quan, hãy xem Bảng chỉ mục toàn văn bản của Innodb.mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
Giới hạn mã hóa
Tiêu chuẩn mã hóa nâng cao [AES] là thuật toán mã hóa được hỗ trợ duy nhất.
6 Mã hóa không gian bảng sử dụng chế độ mã hóa khối CodeBook [ECB] cho Chế độ mã hóa khối khối mã hóa và Chuỗi khối mã hóa [CBC] để mã hóa dữ liệu. Đệm không được sử dụng với chế độ mã hóa khối CBC. Thay vào đó,mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
6 đảm bảo rằng văn bản được mã hóa là bội số của kích thước khối.mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
Mã hóa chỉ được hỗ trợ cho các không gian bảng tệp cho mỗi bảng, không gian bảng chung và không gian bảng hệ thống
7. Hỗ trợ mã hóa cho các không gian bảng chung đã được giới thiệu trong MySQL 8.0.13. Hỗ trợ mã hóa cho không gian bảng hệ thốngmysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
7 có sẵn kể từ MySQL 8.0.16. Mã hóa không được hỗ trợ cho các loại không gian bảng khác bao gồm không gian bảng hệ thốngmysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
6.mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
Bạn không thể di chuyển hoặc sao chép một bảng từ một không gian bảng được mã hóa cho mỗi bảng, không gian bảng chung hoặc không gian bảng hệ thống
7 sang loại không gian bảng không hỗ trợ mã hóa.mysql> CREATE SCHEMA test DEFAULT ENCRYPTION = 'Y';
Bạn không thể di chuyển hoặc sao chép một bảng từ một không gian bảng được mã hóa sang một không gian bảng không được mã hóa. Tuy nhiên, việc di chuyển một bảng từ một không gian bảng không được mã hóa sang một bảng được mã hóa được cho phép. Ví dụ: bạn có thể di chuyển hoặc sao chép một bảng từ một không gian bảng tổng hợp không được mã hóa hoặc không gian bảng chung sang một không gian bảng chung được mã hóa.
Theo mặc định, mã hóa không gian bảng chỉ áp dụng cho dữ liệu trong không gian bảng. Làm lại nhật ký và hoàn tác dữ liệu nhật ký có thể được mã hóa bằng cách bật
6 vàmysql> SELECT TABLE_SCHEMA, TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES WHERE CREATE_OPTIONS LIKE '%ENCRYPTION%'; +--------------+------------+----------------+ | TABLE_SCHEMA | TABLE_NAME | CREATE_OPTIONS | +--------------+------------+----------------+ | test | t1 | ENCRYPTION="Y" | +--------------+------------+----------------+
2. Xem Redo Recryption và hoàn tác mã hóa nhật ký. Để biết thông tin về tệp nhật ký nhị phân và mã hóa tệp nhật ký chuyển tiếp, xem phần & nbsp; 17.3.2, mã hóa tệp nhật ký nhị phân và các tệp nhật ký chuyển tiếp.mysql> SELECT SPACE, NAME, SPACE_TYPE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE NAME='test/t1'; +-------+---------+------------+ | SPACE | NAME | SPACE_TYPE | +-------+---------+------------+ | 3 | test/t1 | Single | +-------+---------+------------+
Nó không được phép thay đổi công cụ lưu trữ của một bảng nằm trong hoặc trước đó cư trú trong một không gian bảng được mã hóa.