Làm cách nào để tạo đường dẫn kiểm toán trong MySQL?

Chủ đề này mô tả Cloud SQL dành cho kiểm tra cơ sở dữ liệu MySQL và Plugin Cloud SQL dành cho kiểm tra MySQL. Để sử dụng kiểm tra cơ sở dữ liệu ngay bây giờ, hãy xem Sử dụng kiểm tra cơ sở dữ liệu MySQL

Kiểm toán cơ sở dữ liệu là gì?

Kiểm tra cơ sở dữ liệu cho phép bạn theo dõi các hành động cụ thể của người dùng trong cơ sở dữ liệu, chẳng hạn như cập nhật bảng, đọc truy vấn, cấp đặc quyền người dùng và các hoạt động khác. Kiểm tra cơ sở dữ liệu hữu ích cho các tổ chức cần theo dõi hoạt động của người dùng vì lý do bảo mật hoặc tuân thủ các quy định tài chính, chính phủ và ISO khác nhau. Kiểm tra cơ sở dữ liệu được hỗ trợ cho Cloud SQL cho MySQL 5. 7 và 8. 0

Cloud SQL cho plugin kiểm tra MySQL

Kiểm tra cơ sở dữ liệu được kích hoạt bởi Plugin kiểm tra Cloud SQL cho MySQL hoặc cloudsql_mysql_audit. Plugin này sử dụng API kiểm toán MySQL mở để theo dõi và ghi nhật ký hoạt động trong MySQL. Plugin gửi nhật ký đến. Nhật ký kiểm tra Truy cập dữ liệu bị tắt theo mặc định vì nhật ký kiểm tra có thể khá lớn. Bạn phải bật nhật ký một cách rõ ràng để sử dụng plugin

Khi plugin hoạt động, các quy tắc kiểm tra hiện có mà bạn đã tạo sẽ được áp dụng để tạo nhật ký kiểm tra cho cơ sở dữ liệu. Khi plugin bị hủy kích hoạt, không có nhật ký kiểm tra nào được tạo

Để biết thêm thông tin về các phần bổ trợ MySQL, hãy xem Phần bổ trợ máy chủ MySQL

Ai sử dụng kiểm toán cơ sở dữ liệu?

Có ba loại người dùng có liên quan đến kiểm toán cơ sở dữ liệu

  • Quản trị viên - Người dùng quản lý cơ sở dữ liệu. Quản trị viên là người dùng kiểm tra chịu trách nhiệm bật và tắt kiểm tra trên phiên bản cũng như tạo người dùng mới. Họ cũng cấp phép kiểm toán cho kiểm toán viên. Quản trị viên cũng có thể tạo, xóa và cập nhật các quy tắc kiểm toán
  • Người kiểm tra - Người dùng có quyền tạo, xóa và cập nhật quy tắc kiểm tra. Họ được cấp quyền truy cập bởi quản trị viên
  • Khách hàng - Người dùng có hoạt động được kiểm tra thông qua các quy tắc kiểm tra nhưng không phải là người dùng kiểm tra và bản thân họ không có đặc quyền quản trị hoặc kiểm tra. Quyền truy cập của họ được quản lý bởi quản trị viên

Quản trị viên và kiểm toán viên còn được gọi là người dùng kiểm toán

Ghi chú. Những loại người dùng này khác với [ROLES] đang hoạt động(https. // nhà phát triển. mysql. com/doc/refman/8. 0/vi/vai trò. html) được giới thiệu trong MySQL 8. 0

quy tắc kiểm toán

Kiểm tra cơ sở dữ liệu sử dụng các quy tắc kiểm tra để xác định tổ hợp người dùng, cơ sở dữ liệu, đối tượng, hoạt động và trạng thái sẽ kích hoạt việc tạo nhật ký kiểm tra. Quy tắc kiểm tra chứa thông tin sau

  • Id - Định danh quy tắc số tự động. Mỗi quy tắc kiểm tra có một ID kiểm tra tự động được gán cho nó khi quy tắc được tạo. ID kiểm tra không thể thay đổi sau khi được tạo
  • Tên người dùng - Danh sách người dùng và/hoặc mẫu ký tự đại diện được phân tách bằng dấu phẩy. Bạn có thể sử dụng dấu hoa thị (*) làm ký tự đại diện cho cả người dùng và máy chủ. Sử dụng dấu hoa thị làm hậu tố, tiền tố hoặc cả hai. Ngoài ra, người dùng có thể chỉ sử dụng ký tự đại diện % cho máy chủ. Tối đa là 2048 ký tự
  • Dbname - Danh sách tên cơ sở dữ liệu và/hoặc mẫu ký tự đại diện được phân tách bằng dấu phẩy. Bạn có thể sử dụng dấu hoa thị (*) làm ký tự đại diện cho cả người dùng và máy chủ. Sử dụng dấu hoa thị làm hậu tố, tiền tố hoặc cả hai. Tối đa là 2048 ký tự
  • Mục tiêu. Danh sách các đối tượng cơ sở dữ liệu được phân tách bằng dấu phẩy (bảng, hàm, thủ tục được lưu trữ, v.v. ) tên và/hoặc mẫu ký tự đại diện. Bạn có thể sử dụng dấu hoa thị (*) làm ký tự đại diện cho cả người dùng và máy chủ. Sử dụng dấu hoa thị làm hậu tố, tiền tố hoặc cả hai. Tối đa là 2048 ký tự
  • Hoạt động - Danh sách hoạt động cơ sở dữ liệu được phân tách bằng dấu phẩy. Plugin hỗ trợ các hoạt động nhóm (chẳng hạn như DDL, DML, v.v. ), các thao tác đơn lẻ (chẳng hạn như cập nhật, xóa, v.v. ) và ký tự đại diện (*) cho tất cả các hoạt động. Xem danh sách đầy đủ các hoạt động được hỗ trợ. Plugin cũng hỗ trợ các nhóm hoạt động mà bạn có thể sử dụng để kiểm tra một nhóm hoạt động. Tối đa là 2048 ký tự
  • Op_result - Kết quả của hoạt động

    • S để kiểm toán các hoạt động thành công
    • U để kiểm toán các hoạt động không thành công
    • B để theo dõi cả hoạt động thành công và không thành công

các loại hoạt động

Các loại hoạt động là nhiều loại hoạt động hoặc hoạt động mà bạn có thể kiểm tra trong cơ sở dữ liệu

  • DQL - Đọc dữ liệu từ cơ sở dữ liệu (tức là, câu lệnh cloudsql_mysql_audit0)
  • cloudsql_mysql_audit1 - Thêm, xóa hoặc sửa đổi dữ liệu
  • cloudsql_mysql_audit2 - Tạo hoặc sửa đổi cấu trúc của các đối tượng cơ sở dữ liệu trong cơ sở dữ liệu
  • cloudsql_mysql_audit3 - Quản lý đặc quyền cho người dùng trong cơ sở dữ liệu
  • cloudsql_mysql_audit4 - Mô tả phản đối cơ sở dữ liệu hoặc cung cấp trạng thái của cơ sở dữ liệu
  • cloudsql_mysql_audit5 - Gọi một thủ tục được lưu trữ

Cân nhắc ảnh hưởng đến ghi nhật ký kiểm tra

sao lưu

Khi khôi phục một phiên bản từ một bản sao lưu hoặc khôi phục tại thời điểm (PITR), các quy tắc kiểm tra cũng quay trở lại thời điểm sao lưu hoặc PITR. Điều này xảy ra vì các quy tắc kiểm tra là một phần của dữ liệu được lưu trữ trong cơ sở dữ liệu, cũng như các mục tiêu (người dùng và đối tượng) mà quy tắc đang kiểm tra

Đọc bản sao

Quy tắc kiểm tra được tự động sao chép từ phiên bản chính sang bản sao chỉ có quyền đọc của nó. Khách hàng không thể thêm, xóa hoặc sửa đổi quy tắc kiểm tra trên bản sao chỉ có quyền đọc. Nếu muốn thay đổi quy tắc kiểm tra cho bản sao, bạn cần cập nhật quy tắc kiểm tra của phiên bản chính

Nếu cập nhật quy tắc nhật ký kiểm tra trên phiên bản chính, thì bạn cần tải lại quy tắc kiểm tra trên bản sao để đảm bảo các quy tắc kiểm tra mới cũng được cập nhật trên các bản sao chỉ có quyền đọc. Lệnh sau tải lại quy tắc kiểm toán

CALL mysql.cloudsql_reload_audit_rule(1)

Người dùng có thể kích hoạt ghi nhật ký kiểm tra trên các bản sao độc lập với phiên bản chính. Sau khi thực hiện các thay đổi trên phiên bản chính, bạn cần chạy lệnh tải lại hoặc khởi động lại phiên bản sao để quy tắc nhật ký kiểm tra có hiệu lực

Tính khả dụng của cơ sở dữ liệu trong lỗi nhật ký kiểm tra

Nếu thao tác kiểm tra không thành công, Cloud SQL sẽ không dừng hoạt động cơ sở dữ liệu hoàn thành. Ví dụ: khi một phiên bản hết dung lượng ổ đĩa và Cloud SQL không thể tạo nhật ký kiểm tra, cơ sở dữ liệu vẫn cho phép người dùng thực hiện các truy vấn đọc, ngay cả khi hoạt động này thường tạo nhật ký kiểm tra

Phiên bản chỉ đọc

Nếu một phiên bản có cờ cloudsql_mysql_audit6 được đặt thành cloudsql_mysql_audit7, thì bạn không thể thêm hoặc cập nhật quy tắc kiểm tra vì chúng được lưu trữ trong bảng. Trước khi bạn có thể tạo, cập nhật hoặc xóa quy tắc, bạn cần xóa cờ cloudsql_mysql_audit6

Hạn chế và các vấn đề đã biết

Áp dụng nhật ký nhị phân

Plugin kiểm tra Cloud SQL cho MySQL không tương thích với nhật ký nhị phân trong một phiên bản

Trong một số trường hợp nhất định, nếu bạn thử áp dụng nhật ký nhị phân trong khi Plugin kiểm tra Cloud SQL cho MySQL được bật, phiên bản cơ sở dữ liệu có thể bị lỗi

Nếu bạn muốn áp dụng nhật ký nhị phân bằng tiện ích cloudsql_mysql_audit9, trước tiên bạn cần tắt kiểm tra cơ sở dữ liệu bằng cách đặt *0

Tỷ lệ nhập nhật ký

Trước khi Cloud SQL gửi nhật ký kiểm tra tới Cloud Logging, chúng tạm thời được ghi vào đĩa của phiên bản, sử dụng dung lượng ổ đĩa. Nhật ký được tải lên Cloud Logging và xóa khỏi đĩa với tốc độ 4 MB mỗi giây. Khi tải từ quá trình tạo nhật ký vượt quá tốc độ tải lên, phiên bản sẽ tăng mức sử dụng đĩa, điều này có thể khiến cơ sở dữ liệu của bạn hết đĩa và gặp sự cố. Ngay cả khi kích hoạt tăng lưu trữ ổ đĩa tự động, việc tăng mức sử dụng ổ đĩa sẽ làm tăng chi phí

Trong khi sử dụng tính năng này, chúng tôi khuyên bạn nên

  • .
  • Giám sát việc sử dụng đĩa tổng thể. Bạn không thể theo dõi riêng tải từ việc tạo nhật ký. Sử dụng đám mây. googleapis. chỉ số com/cơ sở dữ liệu/đĩa/sử dụng trong Trình khám phá số liệu
  • Nếu cần, hãy giảm tốc độ tạo nhật ký bằng cách hạn chế hoạt động cơ sở dữ liệu hoặc giảm kiểm tra
Ghi chú. Nếu dung lượng ổ đĩa khả dụng bị cạn kiệt, nhật ký kiểm tra đối với một số truy vấn có thể bị mất

Kiểm toán hoạt động không thành công

Nếu các quy tắc kiểm tra của bạn bao gồm kiểm tra các hoạt động không thành công (*1 được đặt thành U cho các hoạt động không thành công hoặc B cho cả các hoạt động không thành công và thành công), một số người dùng có thể làm quá tải phiên bản cơ sở dữ liệu của bạn với nhật ký kiểm tra bằng cách liên tục thực hiện các hoạt động không thành công. Nếu tốc độ tạo nhật ký vượt quá tốc độ nhập nhật ký, thì có thể xảy ra sự gia tăng không mong muốn trong việc sử dụng ổ đĩa, làm cạn kiệt dung lượng ổ đĩa. Thay vào đó, khi kiểm toán các hoạt động không thành công

  • Kiểm soát quyền truy cập ở cấp phiên bản
  • Thiết lập hệ thống giám sát hoặc cảnh báo về sự gia tăng bất thường của nhật ký thao tác không thành công

quy tắc kiểm toán

Bạn không thể tạo nhiều hơn tổng số 1000 tổ hợp quy tắc kiểm tra cho mỗi phiên bản cơ sở dữ liệu. Tổ hợp quy tắc kiểm tra là một tập hợp duy nhất của người dùng, cơ sở dữ liệu, đối tượng và hoạt động. Ví dụ: kiểm tra quy tắc kiểm tra *4, *5, *6, *7 tạo ra 2 x 2 x 2 x 2 = 16 kết hợp. Tạo hoặc cập nhật quy tắc kiểm tra không thành công nếu tổng số kết hợp quy tắc kiểm tra vượt quá 1000

Ghi chú. Khi bạn tăng số lượng kết hợp quy tắc kiểm tra, kiểm tra cơ sở dữ liệu sẽ mất nhiều thời gian hơn để khớp với truy vấn, do đó làm giảm hiệu suất của cơ sở dữ liệu

Hoạt động không được hỗ trợ

Hiện tại các thao tác sau không được hỗ trợ

  • Các chức năng sau không được hỗ trợ, khi được sử dụng như mô tả

    • Trong phạm vi cloudsql_mysql_audit0 truy vấn với *9, *0, mệnh đề *1, truy vấn lồng nhau, truy vấn con, v.v.
    • Trong câu lệnh *2, *3, *4, *5

    Ví dụ: nếu bạn có quy tắc kiểm tra để kiểm tra đối tượng *6, thì những điều sau đây không được kiểm tra

    • *7
    • *8
    • *9
    • *0
    • *1

    Một hàm được gọi trực tiếp bởi cloudsql_mysql_audit0 mà không có bất kỳ toán tử nào và không có mệnh đề *1 được kiểm tra

    Làm cách nào để triển khai đường kiểm tra trong MySQL?

    TẠO BẢNG MẪU ĐỂ MINH HỌA. Chúng tôi sẽ triển khai một lộ trình kiểm tra cho một bảng mẫu có tên là “Người”. .
    TẠO BẢNG ĐỂ LƯU TRỮ DỮ LIỆU KIỂM TOÁN. Đây là câu lệnh DDL để tạo bảng theo dõi kiểm tra cho bảng “người” được tạo ở trên,.
    TẠO CHÈN KÍCH HOẠT. .
    TẠO KÍCH HOẠT CẬP NHẬT. .
    KIỂM TRA QUI TRÌNH KIỂM TOÁN

    Làm cách nào để kiểm tra nhật ký trong MySQL?

    Để định cấu hình tên tệp nhật ký kiểm tra, đặt biến hệ thống tệp_log_kiểm tra khi máy chủ khởi động . Tên mặc định là kiểm toán. đăng nhập vào thư mục dữ liệu máy chủ. Để bảo mật tốt nhất, hãy ghi nhật ký kiểm tra vào một thư mục chỉ có thể truy cập được đối với máy chủ MySQL và những người dùng có lý do chính đáng để xem nhật ký.

    Làm cách nào để tạo bảng kiểm toán trong SQL?

    Để tạo một đối tượng SQL Server Audit mới. .
    Mở rộng Bảo mật và nhấp chuột phải vào Kiểm tra trong SSMS
    Chọn kiểm tra mới
    Bạn sẽ cần tạo tên cho quá trình kiểm tra, sau đó cho biết có nên lưu trữ dữ liệu kiểm tra trong nhật ký sự kiện bảo mật ứng dụng, nhật ký sự kiện hay tệp

    Làm cách nào để sử dụng trình kích hoạt MySQL để ghi nhật ký thay đổi bảng?

    MySQL. Bảng ghi nhật ký thay đổi thành một bảng khác bằng cách sử dụng trình kích hoạt .
    TẠO dữ liệu BẢNG ( id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,.
    TẠO BẢNG data_log ( hành động VARCHAR(255),.
    DELIMITER $$ TẠO TRIGGER ad_data SAU KHI XÓA TRÊN dữ liệu. .
    mysql> CHỌN * TỪ data_log;