MySQL 9.0.0
Source Code Documentation
|
#include <string.h>
#include "lex_string.h"
#include "my_command.h"
#include "mysql/plugin_audit.h"
#include "sql/error_handler.h"
#include "mysql/components/services/defs/event_tracking_authentication_defs.h"
#include "mysql/components/services/defs/event_tracking_command_defs.h"
#include "mysql/components/services/defs/event_tracking_common_defs.h"
#include "mysql/components/services/defs/event_tracking_connection_defs.h"
#include "mysql/components/services/defs/event_tracking_general_defs.h"
#include "mysql/components/services/defs/event_tracking_global_variable_defs.h"
#include "mysql/components/services/defs/event_tracking_lifecycle_defs.h"
#include "mysql/components/services/defs/event_tracking_message_defs.h"
#include "mysql/components/services/defs/event_tracking_parse_defs.h"
#include "mysql/components/services/defs/event_tracking_query_defs.h"
#include "mysql/components/services/defs/event_tracking_stored_program_defs.h"
#include "mysql/components/services/defs/event_tracking_table_access_defs.h"
#include "sql/sql_event_tracking_to_audit_event_mapping.h"
Go to the source code of this file.
Classes | |
struct | st_mysql_event_generic |
struct | st_mysql_event_plugin_generic |
class | Event_tracking_information |
class | Event_tracking_authentication_information |
class | Event_tracking_general_information |
Macros | |
#define | AUDIT_EVENT(x) x, #x |
Audit API event to string expanding macro. More... | |
Functions | |
bool | is_audit_plugin_class_active (THD *thd, unsigned long event_class) |
There's at least one active audit plugin tracking a specified class. More... | |
bool | is_global_audit_mask_set () |
Checks presence of active audit plugin. More... | |
size_t | make_user_name (Security_context *sctx, char *buf) |
int | initialize_audit_plugin (st_plugin_int *plugin) |
Initialize an Audit plug-in. More... | |
int | finalize_audit_plugin (st_plugin_int *plugin) |
Finalize an Audit plug-in. More... | |
void | mysql_audit_initialize () |
Initialize Audit global variables. More... | |
void | mysql_audit_finalize () |
Finalize Audit global variables. More... | |
void | mysql_audit_init_thd (THD *thd) |
Initialize thd variables used by Audit. More... | |
void | mysql_audit_free_thd (THD *thd) |
Free thd variables used by Audit. More... | |
int | mysql_audit_acquire_plugins (THD *thd, mysql_event_class_t event_class, unsigned long event_subclass, bool check_audited=true) |
Acquire audit plugins. More... | |
void | mysql_audit_release (THD *thd) |
Release any resources associated with the current thd. More... | |
void | mysql_audit_enable_auditing (THD *thd) |
Enable auditing of the specified THD. More... | |
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. More... | |
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. More... | |
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. More... | |
int | mysql_event_tracking_connection_notify (THD *thd, mysql_event_tracking_connection_subclass_t subclass, const char *subclass_name) |
Notify consumers of CONNECTION event tracking events. More... | |
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. More... | |
static int | mysql_event_tracking_general_notify (THD *thd, const char *cmd, size_t cmdlen) |
Notify consumers of GENERAL event tracking events. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
Variables | |
static const size_t | MAX_USER_HOST_SIZE = 512 |
#define AUDIT_EVENT | ( | x | ) | x, #x |
Audit API event to string expanding macro.
int finalize_audit_plugin | ( | st_plugin_int * | plugin | ) |
Finalize an Audit plug-in.
[in] | plugin | Plugin data pointer to be deinitialized. |
false | OK |
true | There was an error. |
int initialize_audit_plugin | ( | st_plugin_int * | plugin | ) |
Initialize an Audit plug-in.
[in] | plugin | Plugin structure pointer to be initialized. |
false | OK |
true | There was an error. |
bool is_audit_plugin_class_active | ( | THD * | thd, |
unsigned long | event_class | ||
) |
There's at least one active audit plugin tracking a specified class.
bool is_global_audit_mask_set | ( | ) |
Checks presence of active audit plugin.
TRUE | At least one audit plugin is present |
FALSE | No audit plugin is present |
size_t make_user_name | ( | Security_context * | sctx, |
char * | buf | ||
) |
int mysql_audit_acquire_plugins | ( | THD * | thd, |
mysql_event_class_t | event_class, | ||
unsigned long | event_subclass, | ||
bool | check_audited | ||
) |
Acquire audit plugins.
Ensure that audit plugins interested in given event class are locked by current thread.
thd | MySQL thread handle. |
event_class | Audit event class. |
event_subclass | Audit event subclass. |
check_audited | Take into account m_auditing_activated flag of the THD. |
void mysql_audit_enable_auditing | ( | THD * | thd | ) |
Enable auditing of the specified THD.
[in] | thd | THD whose auditing capability is turned on. |
void mysql_audit_finalize | ( | ) |
Finalize Audit global variables.
void mysql_audit_free_thd | ( | THD * | thd | ) |
Free thd variables used by Audit.
thd | Current thread |
void mysql_audit_init_thd | ( | THD * | thd | ) |
Initialize thd variables used by Audit.
[in] | thd | Current thread |
void mysql_audit_initialize | ( | ) |
Initialize Audit global variables.
void mysql_audit_release | ( | THD * | thd | ) |
Release any resources associated with the current thd.
[in] | thd | Current thread |
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.
[in] | thd | Current thread data. |
[in] | subclass | Type of the authentication audit event. |
[in] | subclass_name | Name of the subclass. |
[in] | status | Status of the event. |
[in] | user | Name of the user. |
[in] | host | Name of the host. |
[in] | authentication_plugin | Current authentication plugin for user. |
[in] | is_role | Whether given AuthID is a role or not |
[in] | new_user | Name of the new user - In case of rename |
[in] | new_host | Name of the new host - In case of rename |
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.
Internal connection info is extracted from the thd object.
[in] | thd | Current thread data. |
[in] | subclass | Type of the command audit event. |
[in] | subclass_name | Name of the subclass. |
[in] | command | Command id value. |
[in] | command_text | Command string value. |
int mysql_event_tracking_connection_notify | ( | THD * | thd, |
mysql_event_tracking_connection_subclass_t | subclass, | ||
const char * | subclass_name | ||
) |
Notify consumers of CONNECTION event tracking events.
Internal connection info is extracted from the thd object.
[in] | thd | Current thread data. |
[in] | subclass | Type of the connection audit event. |
[in] | subclass_name | Name of the subclass. |
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.
[in] | thd | Current thread context. |
[in] | subclass | Type of the connection audit event. |
[in] | subclass_name | Name of the subclass. |
[in] | errcode | Error code. |
|
inlinestatic |
Notify consumers of GENERAL event tracking events.
[in] | thd | Current thread data. |
[in] | cmd | Command text. |
[in] | cmdlen | Command text length. |
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.
[in] | thd | Current thread data. |
[in] | subclass | Type of general audit event. |
[in] | subclass_name | Subclass name. |
[in] | error_code | Error code |
[in] | msg | Message |
[in] | msg_len | Message length. |
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.
[in] | thd | Current thread data. |
[in] | subclass | Type of the global variable audit event. |
[in] | subclass_name | Name of the subclass. |
[in] | name | Name of the variable. |
[in] | value | Textual value of the variable. |
[in] | value_length | Textual value length. |
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.
[in] | thd | Current thread data. |
[in] | subclass | Message class subclass name. |
[in] | subclass_name | Subclass name length. |
[in] | component | Component name. |
[in] | component_length | Component name length. |
[in] | producer | Producer name. |
[in] | producer_length | Producer name length. |
[in] | message | Message text. |
[in] | message_length | Message text length. |
[in] | key_value_map | Key value map pointer. |
[in] | key_value_map_length | Key value map length. |
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.
[in] | thd | Current thread context. |
[in] | subclass | Type of the parse audit event. |
[in] | subclass_name | Name of the subclass. |
[out] | flags | Rewritten query flags. |
[out] | rewritten_query | Rewritten query |
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.
Internal query info is extracted from the thd object.
[in] | thd | Current thread data. |
[in] | subclass | Type of the query audit event. |
[in] | subclass_name | Name of the subclass. |
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.
[in] | subclass | Type of the server abort audit event. |
[in] | subclass_name | Name of the subclass |
[in] | reason | Reason code of the shutdown. |
[in] | exit_code | Abort exit code. |
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.
[in] | subclass | Type of the server startup audit event. |
[in] | subclass_name | Name of the subclass. |
[in] | argv | Array of program arguments. |
[in] | argc | Program arguments array length. |
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.
[in] | thd | Current thread data. |
[in] | subclass | Type of the stored program audit event. |
[in] | subclass_name | Name of the subclass. |
[in] | database | Stored program database name. |
[in] | name | Name of the stored program. |
[in] | parameters | Parameters of the stored program execution. |
Notify consumers of TABLE ACCESS event tracking events for all tables available in the list.
Event subclass value depends on the thd->lex->sql_command value.
The event is generated for 'USER' and 'SYS' tables only.
[in] | thd | Current thread data. |
[in] | table | Connected list of tables, for which event is generated. |
|
static |