MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

Bảo mật sao lưu MySQL:Hướng dẫn

Nếu bạn đã từng sử dụng MySQL, rất có thể bạn đã sao lưu cơ sở dữ liệu của mình. Nếu bạn đã sao lưu cơ sở dữ liệu của mình, rất có thể bạn đã ít nhất một lần nghĩ đến cách bạn có thể bảo mật chúng. Trong bài đăng trên blog này, chúng tôi sẽ cho bạn biết cách thực hiện chính xác điều đó.

Tại sao bạn nên bảo mật bản sao lưu MySQL của mình?

Trước khi chúng tôi cho bạn biết cách bạn nên bảo mật các bản sao lưu MySQL của mình, có lẽ chúng tôi nên cho bạn biết lý do tại sao bạn nên bảo mật chúng ngay từ đầu. Chúng tôi thậm chí có nghĩa là gì khi "bảo mật" các bản sao lưu MySQL của bạn? Các bản sao lưu MySQL nên được bảo mật theo mặc định, phải không? Thật không may, không phải mọi thứ đều đơn giản như nó có vẻ. Để sử dụng và duy trì các bản sao lưu MySQL an toàn, bạn nên xem xét những điều sau:

  1. Sử dụng các bản sao lưu MySQL của bạn một cách an toàn

  2. Lưu trữ an toàn các bản sao lưu MySQL của bạn

  3. Chuyển các bản sao lưu MySQL của bạn một cách an toàn

Rõ ràng là nói thì dễ hơn làm, nhưng chúng tôi sẽ đưa ra một số lời khuyên chung có thể hướng dẫn bạn đi đúng hướng.

Bảo mật Sao lưu MySQL

  1. Để lấy các bản sao lưu MySQL của bạn một cách an toàn bằng cách sử dụng, ví dụ:mysqldump, hãy cân nhắc đặt tên người dùng và mật khẩu của bạn Người dùng MySQL bên trong my.cnf. Bạn thậm chí có thể tạo tệp .my.cnf trong thư mục chính của mình, lưu tên người dùng và mật khẩu ở đó, sau đó sử dụng tùy chọn --defaults-extra-file để yêu cầu MySQL đọc tệp này sau tệp tùy chọn chung:

    [mysqldump]
    user=demo_user
    password=demo_password

    Bằng cách này, bạn không cần phải cung cấp mật khẩu MySQL của mình khi chạy mysqldump - bằng cách đặt tên người dùng và mật khẩu của bạn bên trong my.cn nếu bạn làm cho mật khẩu của mình không thể quan sát được với bất kỳ ai khác ngoài DBA.

  2. Cân nhắc xem xét mysqldump-secure:đó là tập lệnh trình bao bọc tuân thủ POSIX cho mysqldump với khả năng mã hóa. Công cụ có thể sao lưu cơ sở dữ liệu dưới dạng các tệp riêng biệt. Cơ sở dữ liệu cũng có thể bị đưa vào danh sách đen không được sao lưu. Công cụ này cũng có thể mã hóa cơ sở dữ liệu MySQL của bạn và nó cũng có ý nghĩa tự xác thực nếu có gì sai, nó sẽ cho bạn biết điều gì đã xảy ra và cách khắc phục, vì vậy nếu bạn đang tìm kiếm một giải pháp thay thế cho mysqldump, hãy chắc chắn xem xét cung cấp cho nó một thử.

  3. Sau khi bạn đã sao lưu các phiên bản cơ sở dữ liệu MySQL hoặc MariaDB, hãy xem xét việc mã hóa nó. Rất có thể dữ liệu là một trong những tài sản quý giá nhất đối với tổ chức của bạn và bằng cách mã hóa nó, bạn có thể đảm bảo rằng nó được bảo vệ đúng cách. Rất may, việc mã hóa các bản sao lưu MySQL không quá phức tạp và nó có thể được thực hiện theo một số cách bao gồm mã hóa tệp cục bộ và mã hóa bản sao lưu khi đang di chuyển. Để mã hóa bản sao cục bộ của bản sao lưu của bạn, chỉ cần sao lưu dữ liệu được lưu trữ trong MySQL, sau đó mã hóa nó bằng cách sử dụng, chẳng hạn như OpenSSL (thay thế mật khẩu bằng mật khẩu bạn muốn sử dụng):

    $ openssl enc -aes-256-cbc -salt -in backup.tar.gz -out backup.tar.gz.enc -k password

    Bản sao lưu của bạn có thể được giải mã bằng cách chạy:

    $ openssl aes-256-cbc -d -in backup.tar.gz.enc -out backup.tar.gz -k password


    Bạn cũng có thể xem xét việc mã hóa các bản sao lưu của mình một cách nhanh chóng. Để làm điều đó, nói chung, bạn sẽ cần phải thực hiện mã hóa khi bản sao lưu đang được tạo (tức là tạo bản sao lưu, nén nó và mã hóa nó). Dưới đây là cách thực hiện điều đó cho MySQL bằng cách sử dụng mysqldump (bản sao lưu của bạn sẽ được gọi là encode_backup.xb.enc):

    mysqldump --all-databases --single-transaction --triggers --routines | gzip | openssl  enc -aes-256-cbc -k password > encrypted_backup.xb.enc

    Bạn cũng có thể mã hóa các bản sao lưu của mình bằng cách sử dụng ClusterControl:chỉ cần chọn hộp “Sử dụng Nén” và (hoặc) “Bật Mã hóa” trong giai đoạn cuối của quá trình sao lưu và bạn đã hoàn tất . Vâng, thật dễ dàng như vậy!

Bạn cũng có thể muốn xem một tập lệnh shell có tên là mysql_secure_installation (hoặc mariadb_secure_installation nếu bạn đang sử dụng MariaDB). Tập lệnh cho phép bạn:

  • Đặt mật khẩu cho tài khoản gốc của MySQL.

  • Xóa các tài khoản gốc có thể truy cập từ bên ngoài localhost.

  • Xóa mọi tài khoản người dùng ẩn danh và cơ sở dữ liệu thử nghiệm mà người dùng ẩn danh có thể truy cập.

Nếu bạn đang triển khai MySQL hoặc MariaDB bằng ClusterControl, điều mà bạn có thể thực hiện tự do với Phiên bản Cộng đồng, quá trình triển khai sẽ tự động xử lý các biện pháp bảo mật này.

Tóm tắt

Khi nói đến việc bảo mật các bản sao lưu MySQL của bạn, danh sách những việc bạn có thể làm là khá dài. Chúng tôi hy vọng rằng bài đăng trên blog này đã cung cấp cho bạn một số ý tưởng về những gì bạn có thể làm để bảo mật các bản sao lưu MySQL hoặc MariaDB của mình:nói chung, các bản sao lưu có thể được bảo mật bằng cách làm cho mật khẩu của bạn không thể quan sát được khi gọi mysqldump, cũng như khi mã hóa các bản sao lưu cục bộ hoặc trên- bay.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MariaDB JSON_INSERT () Giải thích

  2. Cách triển khai MySQL hoặc MariaDB Galera Cluster sẵn sàng sản xuất bằng ClusterControl

  3. Tính khả dụng cao của cơ sở dữ liệu cho Camunda BPM sử dụng MySQL hoặc MariaDB Galera Cluster

  4. Hướng dẫn về Chỉ mục MySQL

  5. Cách cấu hình AppArmor cho các hệ thống dựa trên MySQL (MySQL / MariaDB Replication + Galera)