|
Database System 0.1.0
Advanced C++20 Database System with Multi-Backend Support
|
Role-based access control (RBAC) system. More...
#include <secure_connection.h>

Classes | |
| struct | role |
| struct | user_session |
Public Types | |
| enum class | permission { select = 1 , insert = 2 , update = 4 , delete_record = 8 , create = 16 , drop = 32 , alter = 64 , admin = 128 } |
Public Member Functions | |
| access_control ()=default | |
| Default constructor - used by database_context. | |
| bool | create_role (const role &new_role) |
| bool | assign_role_to_user (const std::string &user_id, const std::string &role_name) |
| bool | revoke_role_from_user (const std::string &user_id, const std::string &role_name) |
| std::vector< role > | get_user_roles (const std::string &user_id) const |
| bool | check_permission (const std::string &user_id, const std::string &table, const std::string &operation) const |
| bool | check_table_access (const std::string &user_id, const std::string &table) const |
| std::string | create_session (const std::string &user_id, const std::string &client_ip) |
| bool | validate_session (const std::string &session_id) const |
| bool | terminate_session (const std::string &session_id) |
| void | cleanup_expired_sessions () |
Private Attributes | |
| std::mutex | access_mutex_ |
| std::unordered_map< std::string, role > | roles_ |
| std::unordered_map< std::string, std::vector< std::string > > | user_roles_ |
| std::unordered_map< std::string, user_session > | active_sessions_ |
Role-based access control (RBAC) system.
Example:
Definition at line 193 of file secure_connection.h.
|
strong |
| Enumerator | |
|---|---|
| select | |
| insert | |
| update | |
| delete_record | |
| create | |
| drop | |
| alter | |
| admin | |
Definition at line 196 of file secure_connection.h.
|
default |
Default constructor - used by database_context.
| bool database::security::access_control::assign_role_to_user | ( | const std::string & | user_id, |
| const std::string & | role_name ) |
| bool database::security::access_control::check_permission | ( | const std::string & | user_id, |
| const std::string & | table, | ||
| const std::string & | operation ) const |
| bool database::security::access_control::check_table_access | ( | const std::string & | user_id, |
| const std::string & | table ) const |
| void database::security::access_control::cleanup_expired_sessions | ( | ) |
| bool database::security::access_control::create_role | ( | const role & | new_role | ) |
| std::string database::security::access_control::create_session | ( | const std::string & | user_id, |
| const std::string & | client_ip ) |
| std::vector< role > database::security::access_control::get_user_roles | ( | const std::string & | user_id | ) | const |
| bool database::security::access_control::revoke_role_from_user | ( | const std::string & | user_id, |
| const std::string & | role_name ) |
| bool database::security::access_control::terminate_session | ( | const std::string & | session_id | ) |
| bool database::security::access_control::validate_session | ( | const std::string & | session_id | ) | const |
|
mutableprivate |
Definition at line 250 of file secure_connection.h.
|
private |
Definition at line 253 of file secure_connection.h.
|
private |
Definition at line 251 of file secure_connection.h.
|
private |
Definition at line 252 of file secure_connection.h.