Database System 0.1.0
Advanced C++20 Database System with Multi-Backend Support
Loading...
Searching...
No Matches
database::security::security_monitor Class Reference

Real-time security monitoring and alerting. More...

#include <secure_connection.h>

Collaboration diagram for database::security::security_monitor:
Collaboration graph

Classes

struct  security_alert
 

Public Types

enum class  threat_level { low , medium , high , critical }
 

Public Member Functions

 security_monitor ()=default
 Default constructor - used by database_context.
 
void analyze_query_patterns (const std::string &user_id, const std::string &query)
 
void detect_brute_force_attempts (const std::string &client_ip)
 
void monitor_privilege_escalation (const std::string &user_id, const std::string &operation)
 
void register_security_handler (std::function< void(const security_alert &)> handler)
 
std::vector< security_alertget_recent_alerts (std::chrono::hours window) const
 
size_t get_failed_login_count (std::chrono::hours window) const
 
size_t get_suspicious_query_count (std::chrono::hours window) const
 
double calculate_security_score () const
 

Private Member Functions

void emit_security_alert (threat_level level, const std::string &type, const std::string &description, const std::string &user_id="")
 

Private Attributes

std::mutex monitor_mutex_
 
std::vector< security_alertsecurity_alerts_
 
std::vector< std::function< void(const security_alert &)> > alert_handlers_
 
std::unordered_map< std::string, size_t > failed_login_attempts_
 
std::unordered_map< std::string, std::vector< std::string > > user_query_patterns_
 

Detailed Description

Real-time security monitoring and alerting.

Note
This class uses dependency injection pattern. Access via database_context::get_security_monitor() (Sprint 3, Task 3.3).

Example:

auto context = std::make_shared<database_context>();
auto sec_monitor = context->get_security_monitor();

Definition at line 332 of file secure_connection.h.

Member Enumeration Documentation

◆ threat_level

Constructor & Destructor Documentation

◆ security_monitor()

database::security::security_monitor::security_monitor ( )
default

Default constructor - used by database_context.

Member Function Documentation

◆ analyze_query_patterns()

void database::security::security_monitor::analyze_query_patterns ( const std::string & user_id,
const std::string & query )

◆ calculate_security_score()

double database::security::security_monitor::calculate_security_score ( ) const

◆ detect_brute_force_attempts()

void database::security::security_monitor::detect_brute_force_attempts ( const std::string & client_ip)

◆ emit_security_alert()

void database::security::security_monitor::emit_security_alert ( threat_level level,
const std::string & type,
const std::string & description,
const std::string & user_id = "" )
private

◆ get_failed_login_count()

size_t database::security::security_monitor::get_failed_login_count ( std::chrono::hours window) const

◆ get_recent_alerts()

std::vector< security_alert > database::security::security_monitor::get_recent_alerts ( std::chrono::hours window) const

◆ get_suspicious_query_count()

size_t database::security::security_monitor::get_suspicious_query_count ( std::chrono::hours window) const

◆ monitor_privilege_escalation()

void database::security::security_monitor::monitor_privilege_escalation ( const std::string & user_id,
const std::string & operation )

◆ register_security_handler()

void database::security::security_monitor::register_security_handler ( std::function< void(const security_alert &)> handler)

Member Data Documentation

◆ alert_handlers_

std::vector<std::function<void(const security_alert&)> > database::security::security_monitor::alert_handlers_
private

Definition at line 376 of file secure_connection.h.

◆ failed_login_attempts_

std::unordered_map<std::string, size_t> database::security::security_monitor::failed_login_attempts_
private

Definition at line 379 of file secure_connection.h.

◆ monitor_mutex_

std::mutex database::security::security_monitor::monitor_mutex_
mutableprivate

Definition at line 374 of file secure_connection.h.

◆ security_alerts_

std::vector<security_alert> database::security::security_monitor::security_alerts_
private

Definition at line 375 of file secure_connection.h.

◆ user_query_patterns_

std::unordered_map<std::string, std::vector<std::string> > database::security::security_monitor::user_query_patterns_
private

Definition at line 380 of file secure_connection.h.


The documentation for this class was generated from the following file: