|
Database System 0.1.0
Advanced C++20 Database System with Multi-Backend Support
|
Security audit logging system. More...
#include <secure_connection.h>

Public Member Functions | |
| audit_logger ()=default | |
| Default constructor - used by database_context. | |
| audit_logger (const std::string &log_file_path) | |
| Constructor with persistent log file path. | |
| void | log_database_access (const std::string &user_id, const std::string &session_id, const std::string &operation, const std::string &table, const std::string &query_hash, bool success, const std::string &error_message="") |
| void | log_authentication_event (const std::string &user_id, const std::string &client_ip, bool success, const std::string &method) |
| void | log_authorization_failure (const std::string &user_id, const std::string &operation, const std::string &table, const std::string &reason) |
| std::vector< audit_log_entry > | get_audit_logs (std::chrono::hours window) const |
| std::vector< audit_log_entry > | get_user_audit_logs (const std::string &user_id, std::chrono::hours window) const |
| std::string | generate_security_report (std::chrono::hours window) const |
| std::vector< std::string > | detect_suspicious_activity (std::chrono::hours window) const |
| void | set_log_retention_period (std::chrono::hours retention) |
| void | cleanup_old_logs () |
| bool | export_logs_to_file (const std::string &filename) const |
Private Member Functions | |
| void | persist_entry (const audit_log_entry &entry) |
Private Attributes | |
| std::mutex | audit_mutex_ |
| std::vector< audit_log_entry > | audit_logs_ |
| std::chrono::hours | retention_period_ {24 * 30} |
| std::string | log_file_path_ |
Security audit logging system.
Example:
Definition at line 268 of file secure_connection.h.
|
default |
Default constructor - used by database_context.
|
explicit |
Constructor with persistent log file path.
| log_file_path | Path to the audit log file for durable storage. |
When a log file path is provided, all audit events are appended to the file immediately (with flush) in addition to the in-memory vector.
Definition at line 707 of file secure_connection.cpp.
| void database::security::audit_logger::cleanup_old_logs | ( | ) |
Definition at line 904 of file secure_connection.cpp.
References audit_logs_, audit_mutex_, and retention_period_.
| std::vector< std::string > database::security::audit_logger::detect_suspicious_activity | ( | std::chrono::hours | window | ) | const |
Definition at line 868 of file secure_connection.cpp.
References get_audit_logs().

| bool database::security::audit_logger::export_logs_to_file | ( | const std::string & | filename | ) | const |
Definition at line 917 of file secure_connection.cpp.
References audit_logs_, and audit_mutex_.
| std::string database::security::audit_logger::generate_security_report | ( | std::chrono::hours | window | ) | const |
Definition at line 836 of file secure_connection.cpp.
References get_audit_logs().

| std::vector< audit_log_entry > database::security::audit_logger::get_audit_logs | ( | std::chrono::hours | window | ) | const |
Definition at line 798 of file secure_connection.cpp.
References audit_logs_, and audit_mutex_.
Referenced by detect_suspicious_activity(), and generate_security_report().

| std::vector< audit_log_entry > database::security::audit_logger::get_user_audit_logs | ( | const std::string & | user_id, |
| std::chrono::hours | window ) const |
Definition at line 817 of file secure_connection.cpp.
References audit_logs_, and audit_mutex_.
| void database::security::audit_logger::log_authentication_event | ( | const std::string & | user_id, |
| const std::string & | client_ip, | ||
| bool | success, | ||
| const std::string & | method ) |
Definition at line 762 of file secure_connection.cpp.
References audit_logs_, audit_mutex_, database::security::audit_log_entry::client_ip, database::security::audit_log_entry::error_message, database::security::audit_log_entry::operation, persist_entry(), database::success, database::security::audit_log_entry::success, database::security::audit_log_entry::timestamp, and database::security::audit_log_entry::user_id.

| void database::security::audit_logger::log_authorization_failure | ( | const std::string & | user_id, |
| const std::string & | operation, | ||
| const std::string & | table, | ||
| const std::string & | reason ) |
Definition at line 780 of file secure_connection.cpp.
References audit_logs_, audit_mutex_, database::security::audit_log_entry::error_message, database::security::audit_log_entry::operation, persist_entry(), database::security::audit_log_entry::success, database::security::audit_log_entry::table_name, database::security::audit_log_entry::timestamp, and database::security::audit_log_entry::user_id.

| void database::security::audit_logger::log_database_access | ( | const std::string & | user_id, |
| const std::string & | session_id, | ||
| const std::string & | operation, | ||
| const std::string & | table, | ||
| const std::string & | query_hash, | ||
| bool | success, | ||
| const std::string & | error_message = "" ) |
Definition at line 739 of file secure_connection.cpp.
References audit_logs_, audit_mutex_, database::security::audit_log_entry::error_message, database::security::audit_log_entry::operation, persist_entry(), database::security::audit_log_entry::query_hash, database::security::audit_log_entry::session_id, database::success, database::security::audit_log_entry::success, database::security::audit_log_entry::table_name, database::security::audit_log_entry::timestamp, and database::security::audit_log_entry::user_id.

|
private |
Definition at line 712 of file secure_connection.cpp.
References database::security::audit_log_entry::client_ip, database::security::audit_log_entry::error_message, log_file_path_, database::security::audit_log_entry::operation, database::security::audit_log_entry::query_hash, database::security::audit_log_entry::session_id, database::security::audit_log_entry::success, database::security::audit_log_entry::table_name, database::security::audit_log_entry::timestamp, database::security::audit_log_entry::user_agent, and database::security::audit_log_entry::user_id.
Referenced by log_authentication_event(), log_authorization_failure(), and log_database_access().

| void database::security::audit_logger::set_log_retention_period | ( | std::chrono::hours | retention | ) |
Definition at line 898 of file secure_connection.cpp.
References audit_mutex_, and retention_period_.
|
private |
Definition at line 315 of file secure_connection.h.
Referenced by cleanup_old_logs(), export_logs_to_file(), get_audit_logs(), get_user_audit_logs(), log_authentication_event(), log_authorization_failure(), and log_database_access().
|
mutableprivate |
Definition at line 314 of file secure_connection.h.
Referenced by cleanup_old_logs(), export_logs_to_file(), get_audit_logs(), get_user_audit_logs(), log_authentication_event(), log_authorization_failure(), log_database_access(), and set_log_retention_period().
|
private |
Definition at line 317 of file secure_connection.h.
Referenced by persist_entry().
|
private |
Definition at line 316 of file secure_connection.h.
Referenced by cleanup_old_logs(), and set_log_retention_period().