Hướng dẫn mã hóa MySQL
GHI CHÚ. Chúng tôi đang trong quá trình sửa đổi cấu trúc và cấu hình tệp cho nhiều ngăn xếp Bitnami. Do những thay đổi này, đường dẫn tệp được nêu trong hướng dẫn này có thể thay đổi tùy thuộc vào việc ngăn xếp Bitnami của bạn sử dụng các gói hệ thống Linux gốc (Phương pháp A) hay nếu đó là bản cài đặt độc lập (Phương pháp B). Để xác định loại cài đặt Bitnami của bạn và cách tiếp cận cần tuân theo, hãy chạy lệnh bên dưới Show
Đầu ra của lệnh cho biết phương pháp cài đặt nào (A hoặc B) được sử dụng và sẽ cho phép bạn xác định các đường dẫn, cấu hình và lệnh sẽ sử dụng trong hướng dẫn này. Tham khảo Câu hỏi thường gặp để biết thêm thông tin về những thay đổi này
Thực hiện theo các bước bên dưới để định cấu hình hỗ trợ mã hóa bảng
Bây giờ bạn có thể tạo một bảng được mã hóa bằng cách thêm mệnh đề ENCRYPTED=‘Y’ vào bất kỳ lệnh CREATE TABLE nào. Đây là một ví dụ
Các bảng chưa được mã hóa có thể được mã hóa bằng cách sử dụng lệnh ALTER TABLE, chẳng hạn như lệnh bên dưới Từ “dữ liệu” rất quan trọng kể từ đầu năm 2000 và trong khoảng thời gian 2 thập kỷ này, nó ngày càng trở nên quan trọng hơn. Theo Forbes Google tin rằng trong tương lai mọi tổ chức sẽ dẫn đến việc trở thành một công ty dữ liệu. Chà, khi nói đến dữ liệu, bảo mật là một trong những mối quan tâm chính mà chúng ta phải đối mặt. Chúng tôi có một số kỹ thuật phổ biến để lưu trữ dữ liệu trong môi trường ngày nay như MySql, Oracle, MsSql, Cassandra, Mongo, v.v. và những công nghệ này sẽ tiếp tục thay đổi trong tương lai. Nhưng theo DataAnyz, MySql vẫn chiếm 33% thị phần. Vì vậy, ở đây chúng tôi có một kỹ thuật để bảo mật dữ liệu MySQL của chúng tôi Trước khi tìm hiểu thêm về bài viết này, hãy cho chúng tôi biết những cách tiếp cận kết hợp có thể có để bảo mật dữ liệu MySQL
Bạn có thể khám phá tất cả các cách tiếp cận nhưng trong bài viết này, chúng ta sẽ hiểu khái niệm về dữ liệu Mysql khi mã hóa và thực hành nữa Khái niệm “Mã hóa dữ liệu ở trạng thái nghỉ” trong MySQL đã được giới thiệu trong Mysql 5. 7 chỉ với sự hỗ trợ ban đầu của công cụ lưu trữ InnoDB và theo thời gian, nó đã phát triển đáng kể. Vì vậy, hãy hiểu về “Mã hóa dữ liệu khi nghỉ ngơi” trong MySQL "Mã hóa dữ liệu ở trạng thái nghỉ" trong MySql là gì?Khái niệm "mã hóa dữ liệu ở trạng thái lưu trữ" sử dụng cấu trúc khóa mã hóa hai tầng, được sử dụng bên dưới hai khóa
Vì vậy, hãy hiểu hoạt động của nóGiả sử chúng ta có một MySQL đang chạy với công cụ lưu trữ InnoDB và không gian bảng được mã hóa bằng một khóa, được gọi là khóa không gian bảng. Khóa này sau đó được mã hóa bằng khóa chính và được lưu trữ trong tiêu đề không gian bảng Bây giờ, khi một yêu cầu được thực hiện để truy cập dữ liệu MySQL, InnoDB sử dụng khóa chính để giải mã tiêu đề không gian bảng hiện tại của khóa vùng bảng. Sau khi nhận được khóa vùng bảng được giải mã, vùng bảng được giải mã và sẵn sàng thực hiện các thao tác đọc/ghi Ghi chú. Phiên bản được giải mã của khóa không gian bảng không bao giờ thay đổi, nhưng khóa chính có thể được xoay Mã hóa dữ liệu ở trạng thái nghỉ được triển khai bằng cách sử dụng plugin tệp khóa để quản lý và mã hóa khóa chính Sau khi hiểu khái niệm về mã hóa và giải mã, dưới đây là một số ưu và nhược điểm khi sử dụng DRE ưu
Nhược điểm
Mặc dù chúng tôi không thể mã hóa nhật ký nhị phân, làm lại nhật ký, chuyển tiếp nhật ký trên Mysql 5. 7 nhưng MariaDB đã triển khai điều này với cơ chế mã hóa nhật ký hoàn tác/làm lại, nhật ký nhị phân/nhật ký chuyển tiếp, v.v. bằng cách bật một số cờ trong Tệp cấu hình MariaDB innodb_sys_tablespace_encrypt=ON Tuy nhiên, có một số hạn chế Hãy thảo luận về vấn đề/giải pháp của nó và một vài giải pháp cho chúng
GHI CHÚ. Đừng để mất file master key vì chúng ta không thể giải mã dữ liệu và sẽ bị mất dữ liệu Làm là học, vì vậy hãy cố gắngLà điều kiện tiên quyết, chúng tôi cần một máy có máy chủ MySQL đang hoạt động. Bây giờ để mã hóa dữ liệu ở trạng thái nghỉ hoạt động, chúng tôi cần kích hoạt Bật tệp trên mỗi bảng với sự trợ giúp của tệp cấu hình.
[root@mysql ~]# vim /etc/my.cnf Cùng với tham số trên, hãy bật plugin keyring và đường dẫn keyring. Tham số này phải luôn ở trên cùng trong cấu hình để nó sẽ được tải ban đầu khi MySQL khởi động. Keyring plugin đã được cài đặt trong máy chủ MySQL, chúng ta chỉ cần kích hoạt nó. [root@mysql ~]# vim /etc/my.cnf Và lưu tệp với khởi động lại vào MySQL ________số 8Chúng tôi có thể kiểm tra plugin đã bật và xác minh cấu hình của mình mysql> SELECT plugin_name, plugin_status FROM INFORMATION_SCHEMA.PLUGINS WHERE plugin_name LIKE 'keyring%'; xác minh rằng chúng tôi có một plugin keyring đang chạy và vị trí của nó 0Xác minh rằng chúng tôi đã bật tệp trên mỗi bảng 1Bây giờ chúng tôi sẽ kiểm tra thiết lập của mình bằng cách tạo một DB thử nghiệm với một bảng và chèn một số giá trị vào bảng bằng các lệnh bên dưới 2Sau khi tạo dữ liệu thử nghiệm thành công, hãy chạy lệnh bên dưới từ trình bao Linux để kiểm tra xem bạn có thể đọc tệp InnoDB cho bảng đã tạo của mình không i. e. Trước khi mã hóa Cùng với đó, chúng tôi thấy rằng tệp khóa của chúng tôi cũng trống trước khi mã hóa được bật 3
Tại thời điểm này, nếu chúng tôi cố gắng kiểm tra tệp khóa của mình, chúng tôi sẽ không tìm thấy gì 4Bây giờ, hãy mã hóa bảng của chúng tôi bằng lệnh bên dưới và kiểm tra nội dung tệp khóa và tệp InnoDB của chúng tôi [root@mysql ~]# vim /etc/my.cnf0 Nội dung trên rõ ràng rằng dữ liệu tệp không thể đọc được và không gian bảng được mã hóa. Vì dữ liệu tệp khóa oy trước đây không có/trống, vì vậy bây giờ nó phải có một số dữ liệu Ghi chú. Vui lòng xem Khóa chính và dấu thời gian (chúng tôi sẽ triển khai xoay vòng phím ) [root@mysql ~]# vim /etc/my.cnf1 Với mối lo ngại về bảo mật đã biết đối với khóa chính bị xâm phạm, thỉnh thoảng chúng tôi có thể sử dụng kỹ thuật xoay vòng khóa chính để lưu khóa của mình [root@mysql ~]# vim /etc/my.cnf2 Sau lệnh này, chúng tôi nhận ra rằng dấu thời gian chính của chúng tôi hiện đã thay đổi và chúng tôi có một khóa mới. [root@mysql ~]# vim /etc/my.cnf3 Một số lệnh hữu íchDưới đây là một số lệnh hữu ích mà chúng tôi có thể sử dụng trong một hệ thống được mã hóa 1. Liệt kê tất cả các bảng có bật mã hóa [root@mysql ~]# vim /etc/my.cnf4 2. Mã hóa bảng trong cơ sở dữ liệu [root@mysql ~]# vim /etc/my.cnf5 3. Tắt mã hóa cho bảng InnoDB [root@mysql ~]# vim /etc/my.cnf6 Phần kết luận.Bạn có thể mã hóa dữ liệu ở trạng thái nghỉ bằng cách sử dụng plugin khóa và chúng tôi có thể kiểm soát và quản lý dữ liệu đó bằng cách xoay khóa chính. Tạo một thiết lập tệp dữ liệu Mysql được mã hóa đơn giản bằng cách thực hiện một vài lệnh đơn giản. Việc sử dụng một hệ thống được mã hóa cũng minh bạch đối với các dịch vụ, ứng dụng và người dùng với tác động tối thiểu đến tài nguyên hệ thống. Hơn nữa với Mã hóa dữ liệu khi lưu trữ, chúng tôi cũng có thể triển khai mã hóa khi truyền. Tôi hy vọng bạn tìm thấy bài viết này nhiều thông tin và thú vị. Tôi thực sự đánh giá cao bất kỳ và tất cả thông tin phản hồi Bạn có thể mã hóa cơ sở dữ liệu MySQL không?Để kích hoạt mã hóa cho vùng bảng hệ thống mysql, hãy chỉ định tên vùng bảng và tùy chọn ENCRYPTION trong câu lệnh ALTER TABLESPACE . mysql> THAY ĐỔI TABLESPACE mysql ENCRYPTION = 'Y'; .
Làm cách nào để mã hóa một giá trị trong MySQL?Hàm MySQL AES_ENCRYPT được sử dụng để mã hóa chuỗi bằng thuật toán Tiêu chuẩn mã hóa nâng cao (AES). Hàm MySQL AES_ENCRYPT mã hóa dữ liệu với độ dài khóa 128 bit nhưng nó có thể được mở rộng lên tới độ dài khóa 256 bit. Nó mã hóa một chuỗi và trả về một chuỗi nhị phân
Làm cách nào để mã hóa một cột trong MySQL?Mã hóa cấp độ cột trong MySQL . TẠO BẢNG pii_data ( user_id int unsigned PRIMARY KEY,. CHÈN VÀO mytable (id, secret_data) GIÁ TRỊ (1, TO_BASE64(AES_ENCRYPT(“dữ liệu siêu bí mật”, “khóa của tôi”))); . plaintextData = “nội dung siêu bí mật”. CHỌN secretData, key TỪ mytable; Làm cách nào để kiểm tra mã hóa trong MySQL?Nếu một vùng bảng chung chứa các bảng, hãy kiểm tra thông tin bảng để xem bảng đó có được mã hóa hay không . Khi không gian bảng chung không chứa bảng, bạn có thể xác minh xem không gian bảng có được mã hóa hay không. Đối với các không gian bảng đơn lẻ, hãy xác minh tùy chọn ENCRYPTION bằng INFORMATION_SCHEMA. |