1#ifndef SQL_AUDIT_INCLUDED
2#define SQL_AUDIT_INCLUDED
69#define AUDIT_EVENT(x) x, #x
87 unsigned long event_subclass,
88 bool check_audited =
true);
116 const char *subclass_name,
int status,
const char *
user,
const char *
host,
117 const char *authentication_plugin,
bool is_role,
const char *new_user,
118 const char *new_host);
137 const char *command_text);
151 const char *subclass_name,
int errcode);
166 const char *subclass_name);
182 const char *subclass_name,
int error_code,
const char *msg,
size_t msg_len);
213 const char *subclass_name,
const char *
name,
const char *value,
214 const unsigned int value_length);
235 const char *subclass_name,
const char *component,
size_t component_length,
236 const char *producer,
size_t producer_length,
const char *message,
237 size_t message_length,
239 size_t key_value_map_length);
254 const char *subclass_name,
271 const char *subclass_name);
300 const char **argv,
unsigned int argc);
316 const char *subclass_name,
const char *database,
const char *
name,
349 const char *subclass_name,
const char *database,
350 unsigned int database_length,
const char *
name,
351 unsigned int name_length);
366int mysql_audit_notify(
THD *thd,
368 const char *subclass_name,
369 const char *database,
395 std::vector<const char *> &auth_methods,
bool is_role,
396 const char *new_user,
const char *new_host)
401 new_user_{new_user, new_user ? strlen(new_user) : 0},
402 new_host_{new_host, new_host ? strlen(new_host) : 0} {}
416 size_t command_length)
A set of THD members describing the current authenticated user.
Definition: sql_security_ctx.h:52
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:33
Data for authentication event tracking.
unsigned long mysql_event_tracking_authentication_subclass_t
Events for Authentication event tracking.
Definition: event_tracking_authentication_defs.h:71
Data for RPC command event tracking.
unsigned long mysql_event_tracking_command_subclass_t
Events for Command event tracking.
Definition: event_tracking_command_defs.h:46
Common data used for tracking various types of events.
Data for connection event tracking.
unsigned long mysql_event_tracking_connection_subclass_t
Events for Connection event tracking.
Definition: event_tracking_connection_defs.h:52
Data for general event tracking.
#define EVENT_TRACKING_GENERAL_LOG
occurs before emitting to the general query log.
Definition: event_tracking_general_defs.h:34
unsigned long mysql_event_tracking_general_subclass_t
Events for the General event tracking.
Definition: event_tracking_general_defs.h:51
Data for global variable event tracking.
unsigned long mysql_event_tracking_global_variable_subclass_t
Events for Global variable event tracking.
Definition: event_tracking_global_variable_defs.h:46
Data for program lifecycle events.
unsigned long mysql_event_tracking_shutdown_subclass_t
Events for Shutdown event tracking.
Definition: event_tracking_lifecycle_defs.h:67
unsigned long mysql_event_tracking_startup_subclass_t
Events for Startup event tracking.
Definition: event_tracking_lifecycle_defs.h:41
int mysql_event_tracking_shutdown_reason_t
Server shutdown reason.
Definition: event_tracking_lifecycle_defs.h:79
Data for message event tracking.
unsigned long mysql_event_tracking_message_subclass_t
Events for Message event tracking.
Definition: event_tracking_message_defs.h:46
Data for parse event tracking.
unsigned int mysql_event_tracking_parse_rewrite_plugin_flag
Query rewritting flags.
Definition: event_tracking_parse_defs.h:60
unsigned long mysql_event_tracking_parse_subclass_t
Events for Parse event tracking.
Definition: event_tracking_parse_defs.h:46
Data for query event tracking.
unsigned long mysql_event_tracking_query_subclass_t
Events for Query event tracking.
Definition: event_tracking_query_defs.h:51
Data for stored program event tracking.
unsigned long mysql_event_tracking_stored_program_subclass_t
Events for Stored program event tracking.
Definition: event_tracking_stored_program_defs.h:43
Data for query event tracking.
Fido Client Authentication nullptr
Definition: fido_client_plugin.cc:221
static int flags[50]
Definition: hp_test1.cc:39
enum_server_command
A list of all MySQL protocol commands.
Definition: my_command.h:47
static const char * command_name[]
Definition: myisamlog.cc:101
char * user
Definition: mysqladmin.cc:64
const char * host
Definition: mysqladmin.cc:63
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1063
static PFS_engine_table_share_proxy table
Definition: pfs.cc:60
Definition: buf0block_hint.cc:29
bool length(const dd::Spatial_reference_system *srs, const Geometry *g1, double *length, bool *null) noexcept
Computes the length of linestrings and multilinestrings.
Definition: length.cc:75
mysql_event_authorization_subclass_t
Events for MYSQL_AUDIT_AUTHORIZATION_CLASS event class.
Definition: plugin_audit.h:235
mysql_event_class_t
Audit event classes.
Definition: plugin_audit.h:49
required uint32 status
Definition: replication_asynchronous_connection_failover.proto:60
size_t make_user_name(Security_context *sctx, char *buf)
Definition: sql_audit.cc:815
void mysql_audit_enable_auditing(THD *thd)
Enable auditing of the specified THD.
Definition: sql_audit.cc:638
void mysql_audit_finalize()
Finalize Audit global variables.
Definition: sql_audit.cc:696
int mysql_event_tracking_query_notify(THD *thd, mysql_event_tracking_query_subclass_t subclass, const char *subclass_name)
Notify consumers of QUERY event tracking events.
Definition: sql_audit.cc:1091
bool is_global_audit_mask_set()
Checks presence of active audit plugin.
Definition: sql_audit.cc:807
int mysql_event_tracking_global_variable_notify(THD *thd, mysql_event_tracking_global_variable_subclass_t subclass, const char *subclass_name, const char *name, const char *value, const unsigned int value_length)
Notify consumers of GLOBAL VARIABLE event tracking events.
Definition: sql_audit.cc:1011
int mysql_event_tracking_parse_notify(THD *thd, mysql_event_tracking_parse_subclass_t subclass, const char *subclass_name, mysql_event_tracking_parse_rewrite_plugin_flag *flags, mysql_cstring_with_length *rewritten_query)
Notify consumers of PARSE event tracking events.
Definition: sql_audit.cc:1065
#define AUDIT_EVENT(x)
Audit API event to string expanding macro.
Definition: sql_audit.h:69
int mysql_event_tracking_message_notify(THD *thd, mysql_event_tracking_message_subclass_t subclass, const char *subclass_name, const char *component, size_t component_length, const char *producer, size_t producer_length, const char *message, size_t message_length, mysql_event_tracking_message_key_value_t *key_value_map, size_t key_value_map_length)
Notify consumers of MESSAGE event tracking events.
Definition: sql_audit.cc:1036
void mysql_audit_release(THD *thd)
Release any resources associated with the current thd.
Definition: sql_audit.cc:608
bool is_audit_plugin_class_active(THD *thd, unsigned long event_class)
There's at least one active audit plugin tracking a specified class.
Definition: sql_audit.cc:796
void mysql_audit_init_thd(THD *thd)
Initialize thd variables used by Audit.
Definition: sql_audit.cc:647
int mysql_event_tracking_general_notify(THD *thd, mysql_event_tracking_general_subclass_t subclass, const char *subclass_name, int error_code, const char *msg, size_t msg_len)
Notify consumers of GENERAL event tracking events.
Definition: sql_audit.cc:960
void mysql_audit_free_thd(THD *thd)
Free thd variables used by Audit.
Definition: sql_audit.cc:658
int initialize_audit_plugin(st_plugin_int *plugin)
Initialize an Audit plug-in.
Definition: sql_audit.cc:707
int finalize_audit_plugin(st_plugin_int *plugin)
Finalize an Audit plug-in.
Definition: sql_audit.cc:766
int mysql_event_tracking_table_access_notify(THD *thd, Table_ref *table)
Notify consumers of TABLE ACCESS event tracking events for all tables available in the list.
Definition: sql_audit.cc:1298
int mysql_event_tracking_shutdown_notify(mysql_event_tracking_shutdown_subclass_t subclass, const char *subclass_name, mysql_event_tracking_shutdown_reason_t reason, int exit_code)
Notify consumers of LIFECYCLE (Shutdown) event tracking events.
Definition: sql_audit.cc:1148
int mysql_event_tracking_connection_notify(THD *thd, mysql_event_tracking_connection_subclass_t subclass, const char *subclass_name, int errcode)
Notify consumers of CONNECTION event tracking events.
Definition: sql_audit.cc:904
void mysql_audit_initialize()
Initialize Audit global variables.
Definition: sql_audit.cc:683
int mysql_audit_acquire_plugins(THD *thd, mysql_event_class_t event_class, unsigned long event_subclass, bool check_audited=true)
Acquire audit plugins.
Definition: sql_audit.cc:548
int mysql_event_tracking_command_notify(THD *thd, mysql_event_tracking_command_subclass_t subclass, const char *subclass_name, enum_server_command command, const char *command_text)
Notify consumers of COMMAND event tracking events.
Definition: sql_audit.cc:868
int mysql_event_tracking_authentication_notify(THD *thd, mysql_event_tracking_authentication_subclass_t subclass, const char *subclass_name, int status, const char *user, const char *host, const char *authentication_plugin, bool is_role, const char *new_user, const char *new_host)
Notify consumers of AUTHENTICATION event tracking events.
Definition: sql_audit.cc:835
int mysql_event_tracking_stored_program_notify(THD *thd, mysql_event_tracking_stored_program_subclass_t subclass, const char *subclass_name, const char *database, const char *name, void *parameters)
Notify consumers of STORED PROGRAM event tracking events.
Definition: sql_audit.cc:1185
static const size_t MAX_USER_HOST_SIZE
Definition: sql_audit.h:52
int mysql_event_tracking_startup_notify(mysql_event_tracking_startup_subclass_t subclass, const char *subclass_name, const char **argv, unsigned int argc)
Notify consumers of LIFECYCLE (Starup) event tracking events.
Definition: sql_audit.cc:1163
Event_tracking_class
Event tracking classes If a new event tracking class is introduced, this class should be kept in sync...
Definition: sql_event_tracking_to_audit_event_mapping.h:40
case opt name
Definition: sslopt-case.h:32
Definition: mysql_lex_string.h:39
String with length information.
Definition: mysql_string_defs.h:32
Structure that stores key-value pair of the Message event.
Definition: event_tracking_message_defs.h:66
Definition: sql_audit.h:55
const void * event
Definition: sql_audit.h:57
Event_tracking_class event_class
Definition: sql_audit.h:56
const Event_tracking_information * event_information
Definition: sql_audit.h:58
Definition: sql_audit.h:61
const void * event
Definition: sql_audit.h:63
mysql_event_class_t event_class
Definition: sql_audit.h:62
Definition: sql_plugin_ref.h:44
st_mysql_plugin * plugin
Definition: sql_plugin_ref.h:46
command
Definition: version_token.cc:279