Tài liệu này mô tả việc ghi nhật ký kiểm tra cho Cơ sở dữ liệu theo thời gian thực của Firebase, bao gồm các phương pháp tạo nhật ký kiểm tra, thông tin chi tiết về nhật ký kiểm tra mà mỗi phương pháp tạo ra và phương pháp nào không tạo nhật ký kiểm tra, nếu có. Google Cloud tạo nhật ký kiểm tra ghi lại các hoạt động quản trị và truy cập trong Tài nguyên của Google Cloud. Để biết thêm thông tin, hãy xem Tổng quan về Nhật ký kiểm tra của Cloud.
Lưu ý
Bạn có thể xem thêm thông tin về các trường trong protoPayload.metadata
cho các thao tác DATA_READ
và DATA_WRITE
trong tài liệu tham khảo.
Tên dịch vụ
Nhật ký kiểm tra Cơ sở dữ liệu theo thời gian thực của Firebase sử dụng tên dịch vụ là firebasedatabase.googleapis.com
.
Các phương thức theo loại quyền
Các phương thức kiểm tra DATA_READ
, DATA_WRITE
và
Các quyền của ADMIN_READ
tạo ra nhật ký được phân loại là
Nhật ký kiểm tra Quyền truy cập dữ liệu.
Các phương thức kiểm tra quyền của ADMIN_WRITE
sẽ tạo nhật ký
được phân loại là
Nhật ký kiểm tra Hoạt động của quản trị viên.
Loại quyền | Phương thức |
---|---|
ADMIN_READ |
google.firebase.database.v1beta.RealtimeDatabaseService.GetDatabaseInstance google.firebase.database.v1beta.RealtimeDatabaseService.ListDatabaseInstances |
ADMIN_WRITE |
google.firebase.database.v1beta.RealtimeDatabaseService.CreateDatabaseInstance google.firebase.database.v1beta.RealtimeDatabaseService.DeleteDatabaseInstance google.firebase.database.v1beta.RealtimeDatabaseService.DisableDatabaseInstance google.firebase.database.v1beta.RealtimeDatabaseService.ReenableDatabaseInstance google.firebase.database.v1beta.RealtimeDatabaseService.UndeleteDatabaseInstance |
DATA_READ |
google.firebase.database.v1.RealtimeDatabase.Connect google.firebase.database.v1.RealtimeDatabase.Disconnect google.firebase.database.v1.RealtimeDatabase.Listen google.firebase.database.v1.RealtimeDatabase.OnDisconnectCancel google.firebase.database.v1.RealtimeDatabase.Read google.firebase.database.v1.RealtimeDatabase.Unlisten |
DATA_WRITE |
google.firebase.database.v1.RealtimeDatabase.OnDisconnectPut google.firebase.database.v1.RealtimeDatabase.OnDisconnectUpdate google.firebase.database.v1.RealtimeDatabase.RunOnDisconnect google.firebase.database.v1.RealtimeDatabase.Update google.firebase.database.v1.RealtimeDatabase.Write |
Nhật ký kiểm tra cho từng giao diện API
Để biết thông tin về cách thức và những quyền được đánh giá, đối với từng phương pháp, xem tài liệu về Quản lý danh tính và quyền truy cập của Cloud đối với Cơ sở dữ liệu theo thời gian thực của Firebase.
google.firebase.database.v1.RealtimeDatabase
Phần sau đây trình bày thông tin chi tiết về nhật ký kiểm tra liên quan đến
thuộc về google.firebase.database.v1.RealtimeDatabase
.
Connect
- Phương thức:
google.firebase.database.v1.RealtimeDatabase.Connect
- Loại nhật ký kiểm tra: Truy cập dữ liệu
- Quyền:
firebasedatabase.data.connect - DATA_READ
- Phương thức là một thao tác truyền trực tuyến hoặc diễn ra trong thời gian dài:
Số
- Bộ lọc cho phương pháp này:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Connect"
Disconnect
- Phương thức:
google.firebase.database.v1.RealtimeDatabase.Disconnect
- Loại nhật ký kiểm tra: Truy cập dữ liệu
- Quyền:
firebasedatabase.data.connect - DATA_READ
- Phương thức là một thao tác truyền trực tuyến hoặc diễn ra trong thời gian dài:
Số
- Bộ lọc cho phương pháp này:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Disconnect"
Listen
- Phương thức:
google.firebase.database.v1.RealtimeDatabase.Listen
- Loại nhật ký kiểm tra: Truy cập dữ liệu
- Quyền:
firebasedatabase.data.get - DATA_READ
- Phương thức là một thao tác truyền trực tuyến hoặc diễn ra trong thời gian dài:
Số
- Bộ lọc cho phương pháp này:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Listen"
OnDisconnectCancel
- Phương thức:
google.firebase.database.v1.RealtimeDatabase.OnDisconnectCancel
- Loại nhật ký kiểm tra: Truy cập dữ liệu
- Quyền:
firebasedatabase.data.cancel - DATA_READ
- Phương thức là một thao tác truyền trực tuyến hoặc diễn ra trong thời gian dài:
Số
- Bộ lọc cho phương pháp này:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.OnDisconnectCancel"
OnDisconnectPut
- Phương thức:
google.firebase.database.v1.RealtimeDatabase.OnDisconnectPut
- Loại nhật ký kiểm tra: Truy cập dữ liệu
- Quyền:
firebasedatabase.data.update - DATA_WRITE
- Phương thức là một thao tác truyền trực tuyến hoặc diễn ra trong thời gian dài:
Số
- Bộ lọc cho phương pháp này:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.OnDisconnectPut"
OnDisconnectUpdate
- Phương thức:
google.firebase.database.v1.RealtimeDatabase.OnDisconnectUpdate
- Loại nhật ký kiểm tra: Truy cập dữ liệu
- Quyền:
firebasedatabase.data.update - DATA_WRITE
- Phương thức là một thao tác truyền trực tuyến hoặc diễn ra trong thời gian dài:
Số
- Bộ lọc cho phương pháp này:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.OnDisconnectUpdate"
Read
- Phương thức:
google.firebase.database.v1.RealtimeDatabase.Read
- Loại nhật ký kiểm tra: Truy cập dữ liệu
- Quyền:
firebasedatabase.data.get - DATA_READ
- Phương thức là một thao tác truyền trực tuyến hoặc diễn ra trong thời gian dài:
Số
- Bộ lọc cho phương pháp này:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Read"
RunOnDisconnect
- Phương thức:
google.firebase.database.v1.RealtimeDatabase.RunOnDisconnect
- Loại nhật ký kiểm tra: Truy cập dữ liệu
- Quyền:
firebasedatabase.data.update - DATA_WRITE
- Phương thức là một thao tác truyền trực tuyến hoặc diễn ra trong thời gian dài:
Số
- Bộ lọc cho phương pháp này:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.RunOnDisconnect"
Unlisten
- Phương thức:
google.firebase.database.v1.RealtimeDatabase.Unlisten
- Loại nhật ký kiểm tra: Truy cập dữ liệu
- Quyền:
firebasedatabase.data.cancel - DATA_READ
- Phương thức là một thao tác truyền trực tuyến hoặc diễn ra trong thời gian dài:
Số
- Bộ lọc cho phương pháp này:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Unlisten"
Update
- Phương thức:
google.firebase.database.v1.RealtimeDatabase.Update
- Loại nhật ký kiểm tra: Truy cập dữ liệu
- Quyền:
firebasedatabase.data.get - DATA_READ
firebasedatabase.data.get - DATA_WRITE
firebasedatabase.data.update - DATA_WRITE
- Phương thức là một thao tác truyền trực tuyến hoặc diễn ra trong thời gian dài:
Số
- Bộ lọc cho phương pháp này:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Update"
Write
- Phương thức:
google.firebase.database.v1.RealtimeDatabase.Write
- Loại nhật ký kiểm tra: Truy cập dữ liệu
- Quyền:
firebasedatabase.data.get - DATA_READ
firebasedatabase.data.get - DATA_WRITE
firebasedatabase.data.update - DATA_WRITE
- Phương thức là một thao tác truyền trực tuyến hoặc diễn ra trong thời gian dài:
Số
- Bộ lọc cho phương pháp này:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Write"
google.firebase.database.v1beta.RealtimeDatabaseService
Phần sau đây trình bày thông tin chi tiết về nhật ký kiểm tra liên quan đến
thuộc về google.firebase.database.v1beta.RealtimeDatabaseService
.
CreateDatabaseInstance
- Phương thức:
google.firebase.database.v1beta.RealtimeDatabaseService.CreateDatabaseInstance
- Loại nhật ký kiểm tra: Hoạt động của quản trị viên
- Quyền:
firebasedatabase.instances.create - ADMIN_WRITE
- Phương thức là một thao tác truyền trực tuyến hoặc diễn ra trong thời gian dài:
Số
- Bộ lọc cho phương pháp này:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.CreateDatabaseInstance"
DeleteDatabaseInstance
- Phương thức:
google.firebase.database.v1beta.RealtimeDatabaseService.DeleteDatabaseInstance
- Loại nhật ký kiểm tra: Hoạt động của quản trị viên
- Quyền:
firebasedatabase.instances.delete - ADMIN_WRITE
- Phương thức là một thao tác truyền trực tuyến hoặc diễn ra trong thời gian dài:
Số
- Bộ lọc cho phương pháp này:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.DeleteDatabaseInstance"
DisableDatabaseInstance
- Phương thức:
google.firebase.database.v1beta.RealtimeDatabaseService.DisableDatabaseInstance
- Loại nhật ký kiểm tra: Hoạt động của quản trị viên
- Quyền:
firebasedatabase.instances.disable - ADMIN_WRITE
- Phương thức là một thao tác truyền trực tuyến hoặc diễn ra trong thời gian dài:
Số
- Bộ lọc cho phương pháp này:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.DisableDatabaseInstance"
GetDatabaseInstance
- Phương thức:
google.firebase.database.v1beta.RealtimeDatabaseService.GetDatabaseInstance
- Loại nhật ký kiểm tra: Truy cập dữ liệu
- Quyền:
firebasedatabase.instances.get - ADMIN_READ
- Phương thức là một thao tác truyền trực tuyến hoặc diễn ra trong thời gian dài:
Số
- Bộ lọc cho phương pháp này:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.GetDatabaseInstance"
ListDatabaseInstances
- Phương thức:
google.firebase.database.v1beta.RealtimeDatabaseService.ListDatabaseInstances
- Loại nhật ký kiểm tra: Truy cập dữ liệu
- Quyền:
firebasedatabase.instances.list - ADMIN_READ
- Phương thức là một thao tác truyền trực tuyến hoặc diễn ra trong thời gian dài:
Số
- Bộ lọc cho phương pháp này:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.ListDatabaseInstances"
ReenableDatabaseInstance
- Phương thức:
google.firebase.database.v1beta.RealtimeDatabaseService.ReenableDatabaseInstance
- Loại nhật ký kiểm tra: Hoạt động của quản trị viên
- Quyền:
firebasedatabase.instances.reenable - ADMIN_WRITE
- Phương thức là một thao tác truyền trực tuyến hoặc diễn ra trong thời gian dài:
Số
- Bộ lọc cho phương pháp này:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.ReenableDatabaseInstance"
UndeleteDatabaseInstance
- Phương thức:
google.firebase.database.v1beta.RealtimeDatabaseService.UndeleteDatabaseInstance
- Loại nhật ký kiểm tra: Hoạt động của quản trị viên
- Quyền:
firebasedatabase.instances.undelete - ADMIN_WRITE
- Phương thức là một thao tác truyền trực tuyến hoặc diễn ra trong thời gian dài:
Số
- Bộ lọc cho phương pháp này:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.UndeleteDatabaseInstance"
Kiểm tra thông tin xác thực
Các mục nhập nhật ký kiểm tra bao gồm thông tin về danh tính đã thực hiện thao tác đã ghi nhật ký. Để xác định một yêu cầu phương thức gọi, hãy xem các trường sau trong đối tượng CheckLog:
Thiết lập kết nối theo thời gian thực. Hoạt động
Connect
của Cơ sở dữ liệu theo thời gian thực không ghi nhật ký dữ liệu xác thực vì Cơ sở dữ liệu thời gian thực xác thực sau kết nối đã được thiết lập. Do đó,Connect
không có thông tin xác thực. Đối tượngAuthenticationInfo
chứa phần giữ chỗprincipalEmail
làaudit-pending-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
.Xác thực Google. Hoạt động trong Cơ sở dữ liệu theo thời gian thực sử dụng phương thức chuẩn Xác thực, chẳng hạn như lưu lượng truy cập từ các yêu cầu REST hoặc SDK quản trị của Firebase xác thực bằng mã thông báo OAuth tiêu chuẩn, có đối tượng
AuthenticationInfo
chứa thông tin xác thực thực tế .Xác thực Firebase. Hoạt động Cơ sở dữ liệu theo thời gian thực sử dụng Xác thực Firebase có đối tượng
AuthenticationInfo
chứa giá trịprincipalEmail
làaudit-third-party-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
. Điều này cũng đúng nếu bạn triển khai giải pháp xác thực của riêng mình bằng cách đúc JWT tuỳ chỉnh.- Nếu bạn sử dụng Mã thông báo web JSON (JWT) để xác thực bên thứ ba,
Trường
thirdPartyPrincipal
bao gồm tiêu đề và tải trọng của mã thông báo. Để ví dụ: nhật ký kiểm tra cho các yêu cầu được xác thực bằng tính năng Xác thực Firebase bao gồm mã thông báo Xác thực Firebase của yêu cầu đó.
- Nếu bạn sử dụng Mã thông báo web JSON (JWT) để xác thực bên thứ ba,
Trường
Không xác thực. Hoạt động Cơ sở dữ liệu theo thời gian thực không sử dụng xác thực có một đối tượng
AuthenticationInfo
chứa Giá trịprincipalEmail
trong sốaudit-no-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
Phiên bản Cơ sở dữ liệu theo thời gian thực có các quy tắc bảo mật mở có thể chấp nhận các yêu cầu như vậy. T4 nên bảo mật cơ sở dữ liệu của mình đúng cách.Mã thông báo của khoá bí mật cũ. Hoạt động của Cơ sở dữ liệu theo thời gian thực bằng mã thông báo cũ có một đối tượng
AuthenticationInfo
chứa phần giữ chỗprincipalEmail
trong sốaudit-secret-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
. Đối với JWT được ký bí mật,thirdPartyPrincipal
chứa các tiêu đề JWT và tải trọng.
Kiểm tra kết quả đánh giá Quy tắc bảo mật của Firebase
Nhật ký kiểm tra của Cloud kiểm tra có thể được dùng để xác định những yêu cầu có khả năng sẽ xuất hiện bị ảnh hưởng bởi các thay đổi về Quy tắc.
Trong đối tượng PermissionsInfo, authorization.permission
có thể là một trong các trạng thái sau:
firebasedatabase.data.get
: Quyền đọc được cấp tại đường dẫn được chỉ định trongresource
.firebasedatabase.data.update
: Quyền ghi được cấp tại đường dẫn được chỉ định trongresource
.firebasedatabase.data.connect
: Phần giữ chỗ choConnect
vàDisconnect
. Không cần cho phép để kết nối với phiên bản Cơ sở dữ liệu theo thời gian thực.firebasedatabase.data.cancel
: Dùng choUnlisten
vàOnDisconnectCancel
. Bạn không cần phải bổ sung thêm để thu hồi hoặc huỷ một hoạt động đã được uỷ quyền trước đó uỷ quyền.
Tương quan nhật ký kiểm tra của Cloud với kết quả của trình phân tích cơ sở dữ liệu theo thời gian thực
Bạn có thể phân tích hiệu suất chuyên sâu trong Cơ sở dữ liệu theo thời gian thực bằng cách sử dụng Trình phân tích cơ sở dữ liệu theo thời gian thực kết hợp với Ghi nhật ký kiểm tra Cơ sở dữ liệu theo thời gian thực. Mỗi công cụ đều có những điểm mạnh riêng.
Cloud Audit Logging | Trình phân tích cơ sở dữ liệu theo thời gian thực |
---|---|
|
|
Nội dung nhật ký kiểm tra tương ứng với các chỉ số của trình phân tích tài nguyên như minh hoạ dưới đây.
Tên hoạt động ghi nhật ký kiểm tra | Giá trị đặc biệt trongRealtimeDatabaseAuditMetadata |
Tên hoạt động của trình phân tích tài nguyên |
---|---|---|
Kết nối | RequestType là REALTIME |
kết nối đồng thời |
Ngắt kết nối | RequestType là REALTIME |
ngắt kết nối đồng thời |
Đã đọc | RequestType là REALTIME |
đọc theo thời gian thực |
Đã đọc | RequestType là REST |
đọc khi nghỉ ngơi |
Viết | RequestType là REALTIME |
ghi theo thời gian thực |
Viết | RequestType là REST |
ghi-ghi-thời gian |
Cập nhật | RequestType là REALTIME .
Hãy xem PreconditionType . |
thông tin cập nhật theo thời gian thực giao dịch theo thời gian thực |
Cập nhật | RequestType là REST .
Hãy xem PreconditionType . |
nghỉ-cập nhật thời gian nghỉ-giao dịch |
Trình nghe | RequestType là REALTIME |
thính- nghe |
ListenerUnlisten (Không nghe) | RequestType là REALTIME |
không nghe-nghe |
Bật tính năng ngắt kết nối | RequestType là REALTIME |
khi-ngắt kết nối-đặt |
Khi ngắt kết nối cập nhật | RequestType là REALTIME |
cập nhật khi ngắt kết nối |
Khi huỷ kết nối | RequestType là REALTIME |
khi ngắt kết nối-huỷ |
RunOnNgắt kết nối | RequestType là REALTIME |
ngắt kết nối khi chạy |