33#ifndef MYSQL_ABI_CHECK
41#define MYSQL_AUDIT_INTERFACE_VERSION 0x0401
123#define MYSQL_AUDIT_GENERAL_ALL \
124 (MYSQL_AUDIT_GENERAL_LOG | MYSQL_AUDIT_GENERAL_ERROR | \
125 MYSQL_AUDIT_GENERAL_RESULT | MYSQL_AUDIT_GENERAL_STATUS)
147#define MYSQL_AUDIT_CONNECTION_ALL \
148 (MYSQL_AUDIT_CONNECTION_CONNECT | MYSQL_AUDIT_CONNECTION_DISCONNECT | \
149 MYSQL_AUDIT_CONNECTION_CHANGE_USER | \
150 MYSQL_AUDIT_CONNECTION_PRE_AUTHENTICATE)
200#define MYSQL_AUDIT_PARSE_ALL \
201 (MYSQL_AUDIT_PARSE_PREPARSE | MYSQL_AUDIT_PARSE_POSTPARSE)
248#define MYSQL_AUDIT_AUTHORIZATION_ALL \
249 (MYSQL_AUDIT_AUTHORIZATION_USER | MYSQL_AUDIT_AUTHORIZATION_DB | \
250 MYSQL_AUDIT_AUTHORIZATION_TABLE | MYSQL_AUDIT_AUTHORIZATION_COLUMN | \
251 MYSQL_AUDIT_AUTHORIZATION_PROCEDURE | MYSQL_AUDIT_AUTHORIZATION_PROXY)
299#define MYSQL_AUDIT_TABLE_ACCESS_ALL \
300 (MYSQL_AUDIT_TABLE_ACCESS_READ | MYSQL_AUDIT_TABLE_ACCESS_INSERT | \
301 MYSQL_AUDIT_TABLE_ACCESS_UPDATE | MYSQL_AUDIT_TABLE_ACCESS_DELETE)
337#define MYSQL_AUDIT_GLOBAL_VARIABLE_ALL \
338 (MYSQL_AUDIT_GLOBAL_VARIABLE_GET | MYSQL_AUDIT_GLOBAL_VARIABLE_SET)
364#define MYSQL_AUDIT_SERVER_STARTUP_ALL (MYSQL_AUDIT_SERVER_STARTUP_STARTUP)
390#define MYSQL_AUDIT_SERVER_SHUTDOWN_ALL (MYSQL_AUDIT_SERVER_SHUTDOWN_SHUTDOWN)
430#define MYSQL_AUDIT_COMMAND_ALL \
431 (MYSQL_AUDIT_COMMAND_START | MYSQL_AUDIT_COMMAND_END)
472#define MYSQL_AUDIT_QUERY_ALL \
473 (MYSQL_AUDIT_QUERY_START | MYSQL_AUDIT_QUERY_NESTED_START | \
474 MYSQL_AUDIT_QUERY_STATUS_END | MYSQL_AUDIT_QUERY_NESTED_STATUS_END)
505#define MYSQL_AUDIT_STORED_PROGRAM_ALL (MYSQL_AUDIT_STORED_PROGRAM_EXECUTE)
557#define MYSQL_AUDIT_AUTHENTICATION_ALL \
558 (MYSQL_AUDIT_AUTHENTICATION_FLUSH | \
559 MYSQL_AUDIT_AUTHENTICATION_AUTHID_CREATE | \
560 MYSQL_AUDIT_AUTHENTICATION_CREDENTIAL_CHANGE | \
561 MYSQL_AUDIT_AUTHENTICATION_AUTHID_RENAME | \
562 MYSQL_AUDIT_AUTHENTICATION_AUTHID_DROP)
596#define MYSQL_AUDIT_MESSAGE_ALL \
597 (MYSQL_AUDIT_MESSAGE_INTERNAL | MYSQL_AUDIT_MESSAGE_USER)
#define MYSQL_THD
Definition: backup_page_tracker.h:38
enum_server_command
A list of all MySQL protocol commands.
Definition: my_command.h:48
enum_sql_command
Definition: my_sqlcommand.h:46
enum enum_sql_command enum_sql_command_t
SQL command type definition.
Definition: plugin_audit.h:105
enum enum_server_command enum_server_command_t
Server command type definition.
Definition: plugin_audit.h:437
mysql_event_global_variable_subclass_t
Events for MYSQL_AUDIT_GLOBAL_VARIABLE_CLASS event class.
Definition: plugin_audit.h:330
@ MYSQL_AUDIT_GLOBAL_VARIABLE_SET
Occurs when global variable is set.
Definition: plugin_audit.h:334
@ MYSQL_AUDIT_GLOBAL_VARIABLE_GET
Occurs when global variable is retrieved.
Definition: plugin_audit.h:332
mysql_event_server_startup_subclass_t
Events for MYSQL_AUDIT_SERVER_STARTUP_CLASS event class.
Definition: plugin_audit.h:359
@ MYSQL_AUDIT_SERVER_STARTUP_STARTUP
Occurs after all subsystem are initialized during system start.
Definition: plugin_audit.h:361
mysql_event_general_subclass_t
Events for the MYSQL_AUDIT_GENERAL_CLASS event class.
Definition: plugin_audit.h:112
@ MYSQL_AUDIT_GENERAL_ERROR
occurs before transmitting errors to the user.
Definition: plugin_audit.h:116
@ MYSQL_AUDIT_GENERAL_STATUS
occurs after transmitting a resultset or errors
Definition: plugin_audit.h:120
@ MYSQL_AUDIT_GENERAL_LOG
occurs before emitting to the general query log.
Definition: plugin_audit.h:114
@ MYSQL_AUDIT_GENERAL_RESULT
occurs after transmitting a resultset to the user.
Definition: plugin_audit.h:118
mysql_event_command_subclass_t
Events for MYSQL_AUDIT_COMMAND_CLASS event class.
Definition: plugin_audit.h:423
@ MYSQL_AUDIT_COMMAND_START
Command start event.
Definition: plugin_audit.h:425
@ MYSQL_AUDIT_COMMAND_END
Command end event.
Definition: plugin_audit.h:427
mysql_event_table_access_subclass_t
Events for MYSQL_AUDIT_TABLE_ACCESS_CLASS event class.
Definition: plugin_audit.h:285
@ MYSQL_AUDIT_TABLE_ACCESS_READ
Occurs when table data are read.
Definition: plugin_audit.h:287
@ MYSQL_AUDIT_TABLE_ACCESS_DELETE
Occurs when table data are deleted.
Definition: plugin_audit.h:293
@ MYSQL_AUDIT_TABLE_ACCESS_UPDATE
Occurs when table data are updated.
Definition: plugin_audit.h:291
@ MYSQL_AUDIT_TABLE_ACCESS_INSERT
Occurs when table data are inserted.
Definition: plugin_audit.h:289
mysql_event_authentication_subclass_t
Events for MYSQL_AUDIT_AUTHENTICATION_CLASS event class.
Definition: plugin_audit.h:539
@ MYSQL_AUDIT_AUTHENTICATION_AUTHID_CREATE
Generated after CREATE USER | CREATE ROLE.
Definition: plugin_audit.h:543
@ MYSQL_AUDIT_AUTHENTICATION_AUTHID_RENAME
Generated after RENAME USER.
Definition: plugin_audit.h:552
@ MYSQL_AUDIT_AUTHENTICATION_CREDENTIAL_CHANGE
Generated after credential change through:
Definition: plugin_audit.h:550
@ MYSQL_AUDIT_AUTHENTICATION_FLUSH
Generated after FLUSH PRIVILEGES.
Definition: plugin_audit.h:541
@ MYSQL_AUDIT_AUTHENTICATION_AUTHID_DROP
Generated after DROP USER.
Definition: plugin_audit.h:554
mysql_event_authorization_subclass_t
Events for MYSQL_AUDIT_AUTHORIZATION_CLASS event class.
Definition: plugin_audit.h:234
@ MYSQL_AUDIT_AUTHORIZATION_TABLE
Occurs when table privilege is checked.
Definition: plugin_audit.h:239
@ MYSQL_AUDIT_AUTHORIZATION_PROXY
Occurs when proxy privilege is checked.
Definition: plugin_audit.h:245
@ MYSQL_AUDIT_AUTHORIZATION_COLUMN
Occurs when column privilege is checked.
Definition: plugin_audit.h:241
@ MYSQL_AUDIT_AUTHORIZATION_USER
Definition: plugin_audit.h:235
@ MYSQL_AUDIT_AUTHORIZATION_DB
Occurs when database privilege is checked.
Definition: plugin_audit.h:237
@ MYSQL_AUDIT_AUTHORIZATION_PROCEDURE
Occurs when procedure privilege is checked.
Definition: plugin_audit.h:243
mysql_event_query_subclass_t
Events for MYSQL_AUDIT_QUERY_CLASS event class.
Definition: plugin_audit.h:461
@ MYSQL_AUDIT_QUERY_START
Query start event.
Definition: plugin_audit.h:463
@ MYSQL_AUDIT_QUERY_NESTED_STATUS_END
Nested query status end event.
Definition: plugin_audit.h:469
@ MYSQL_AUDIT_QUERY_NESTED_START
Nested query start event.
Definition: plugin_audit.h:465
@ MYSQL_AUDIT_QUERY_STATUS_END
Query post parse event.
Definition: plugin_audit.h:467
mysql_event_parse_rewrite_plugin_flag
Definition: plugin_audit.h:203
@ MYSQL_AUDIT_PARSE_REWRITE_PLUGIN_QUERY_REWRITTEN
mysql_event_parse::flags Must be set by a plugin if the query is rewritten.
Definition: plugin_audit.h:207
@ MYSQL_AUDIT_PARSE_REWRITE_PLUGIN_IS_PREPARED_STATEMENT
mysql_event_parse::flags Is set by the server if the query is prepared statement.
Definition: plugin_audit.h:210
@ MYSQL_AUDIT_PARSE_REWRITE_PLUGIN_NONE
Definition: plugin_audit.h:204
mysql_event_server_shutdown_subclass_t
Events for MYSQL_AUDIT_SERVER_SHUTDOWN_CLASS event class.
Definition: plugin_audit.h:385
@ MYSQL_AUDIT_SERVER_SHUTDOWN_SHUTDOWN
Occurs when global variable is set.
Definition: plugin_audit.h:387
mysql_event_parse_subclass_t
Events for MYSQL_AUDIT_PARSE_CLASS event class.
Definition: plugin_audit.h:193
@ MYSQL_AUDIT_PARSE_POSTPARSE
occurs after the query parsing.
Definition: plugin_audit.h:197
@ MYSQL_AUDIT_PARSE_PREPARSE
occurs before the query parsing.
Definition: plugin_audit.h:195
mysql_event_class_t
Audit event classes.
Definition: plugin_audit.h:48
@ MYSQL_AUDIT_SERVER_SHUTDOWN_CLASS
Definition: plugin_audit.h:56
@ MYSQL_AUDIT_AUTHENTICATION_CLASS
Definition: plugin_audit.h:60
@ MYSQL_AUDIT_STORED_PROGRAM_CLASS
Definition: plugin_audit.h:59
@ MYSQL_AUDIT_MESSAGE_CLASS
Definition: plugin_audit.h:61
@ MYSQL_AUDIT_GENERAL_CLASS
Definition: plugin_audit.h:49
@ MYSQL_AUDIT_SERVER_STARTUP_CLASS
Definition: plugin_audit.h:55
@ MYSQL_AUDIT_PARSE_CLASS
Definition: plugin_audit.h:51
@ MYSQL_AUDIT_CLASS_MASK_SIZE
Definition: plugin_audit.h:63
@ MYSQL_AUDIT_QUERY_CLASS
Definition: plugin_audit.h:58
@ MYSQL_AUDIT_COMMAND_CLASS
Definition: plugin_audit.h:57
@ MYSQL_AUDIT_AUTHORIZATION_CLASS
Definition: plugin_audit.h:52
@ MYSQL_AUDIT_GLOBAL_VARIABLE_CLASS
Definition: plugin_audit.h:54
@ MYSQL_AUDIT_TABLE_ACCESS_CLASS
Definition: plugin_audit.h:53
@ MYSQL_AUDIT_CONNECTION_CLASS
Definition: plugin_audit.h:50
mysql_server_shutdown_reason_t
Server shutdown reason.
Definition: plugin_audit.h:397
@ MYSQL_AUDIT_SERVER_SHUTDOWN_REASON_ABORT
The server aborts.
Definition: plugin_audit.h:401
@ MYSQL_AUDIT_SERVER_SHUTDOWN_REASON_SHUTDOWN
User requested shut down.
Definition: plugin_audit.h:399
mysql_event_stored_program_subclass_t
Events for MYSQL_AUDIT_STORED_PROGRAM_CLASS event class.
Definition: plugin_audit.h:500
@ MYSQL_AUDIT_STORED_PROGRAM_EXECUTE
Stored program execution event.
Definition: plugin_audit.h:502
mysql_event_connection_subclass_t
Events for MYSQL_AUDIT_CONNECTION_CLASS event class.
Definition: plugin_audit_connection_types.h:37
mysql_event_message_subclass_t
Events for MYSQL_AUDIT_MESSAGE_CLASS event class.
Definition: plugin_audit_message_types.h:41
Definition: m_ctype.h:385
Definition: mysql_lex_string.h:40
Structure for MYSQL_AUDIT_AUTHENTICATION_CLASS event class.
Definition: plugin_audit.h:569
mysql_event_authentication_subclass_t event_subclass
Event subclass.
Definition: plugin_audit.h:571
enum_sql_command_t sql_command_id
SQL command id.
Definition: plugin_audit.h:577
bool is_role
AuthorizationID type.
Definition: plugin_audit.h:593
const CHARSET_INFO * query_charset
SQL query charset.
Definition: plugin_audit.h:581
MYSQL_LEX_CSTRING new_user
New user name.
Definition: plugin_audit.h:589
MYSQL_LEX_CSTRING query
SQL query text.
Definition: plugin_audit.h:579
MYSQL_LEX_CSTRING user
User name.
Definition: plugin_audit.h:583
MYSQL_LEX_CSTRING new_host
New host name.
Definition: plugin_audit.h:591
int status
Event status.
Definition: plugin_audit.h:573
MYSQL_LEX_CSTRING host
Host name.
Definition: plugin_audit.h:585
unsigned int connection_id
Connection id.
Definition: plugin_audit.h:575
MYSQL_LEX_CSTRING authentication_plugin
Authentication plugin.
Definition: plugin_audit.h:587
Structure for MYSQL_AUDIT_AUTHORIZATION_CLASS event class.
Definition: plugin_audit.h:257
unsigned int connection_id
Connection id.
Definition: plugin_audit.h:263
MYSQL_LEX_CSTRING database
Database name.
Definition: plugin_audit.h:271
MYSQL_LEX_CSTRING table
Table name.
Definition: plugin_audit.h:273
MYSQL_LEX_CSTRING query
SQL query text.
Definition: plugin_audit.h:267
int status
Event status.
Definition: plugin_audit.h:261
const CHARSET_INFO * query_charset
SQL query charset.
Definition: plugin_audit.h:269
unsigned long requested_privilege
Requested authorization privileges.
Definition: plugin_audit.h:277
mysql_event_authorization_subclass_t event_subclass
Event subclass.
Definition: plugin_audit.h:259
enum_sql_command_t sql_command_id
SQL command id.
Definition: plugin_audit.h:265
MYSQL_LEX_CSTRING object
Other name associated with the event.
Definition: plugin_audit.h:275
unsigned long granted_privilege
Currently granted authorization privileges.
Definition: plugin_audit.h:279
Event for MYSQL_AUDIT_COMMAND_CLASS event class.
Definition: plugin_audit.h:445
unsigned long connection_id
Connection id.
Definition: plugin_audit.h:451
enum_server_command_t command_id
Command id.
Definition: plugin_audit.h:453
int status
Command event status.
Definition: plugin_audit.h:449
mysql_event_command_subclass_t event_subclass
Command event subclass.
Definition: plugin_audit.h:447
Structure for the MYSQL_AUDIT_CONNECTION_CLASS event class.
Definition: plugin_audit.h:156
int connection_type
Connection type:
Definition: plugin_audit.h:185
MYSQL_LEX_CSTRING user
User name of this connection.
Definition: plugin_audit.h:164
MYSQL_LEX_CSTRING ip
IP of the connection.
Definition: plugin_audit.h:174
mysql_event_connection_subclass_t event_subclass
Event subclass.
Definition: plugin_audit.h:158
MYSQL_LEX_CSTRING external_user
External user name.
Definition: plugin_audit.h:168
MYSQL_LEX_CSTRING priv_user
Priv user name.
Definition: plugin_audit.h:166
MYSQL_LEX_CSTRING proxy_user
Proxy user used for this connection.
Definition: plugin_audit.h:170
MYSQL_LEX_CSTRING host
Connection host.
Definition: plugin_audit.h:172
MYSQL_LEX_CSTRING database
Database name specified at connection time.
Definition: plugin_audit.h:176
int status
Current status of the connection.
Definition: plugin_audit.h:160
unsigned long connection_id
Connection id.
Definition: plugin_audit.h:162
Structure for the MYSQL_AUDIT_GENERAL_CLASS event class.
Definition: plugin_audit.h:131
int general_error_code
Definition: plugin_audit.h:133
MYSQL_LEX_CSTRING general_external_user
Definition: plugin_audit.h:143
mysql_event_general_subclass_t event_subclass
Definition: plugin_audit.h:132
unsigned long general_thread_id
Definition: plugin_audit.h:134
unsigned long long general_time
Definition: plugin_audit.h:139
MYSQL_LEX_CSTRING general_host
Definition: plugin_audit.h:141
MYSQL_LEX_CSTRING general_user
Definition: plugin_audit.h:135
MYSQL_LEX_CSTRING general_ip
Definition: plugin_audit.h:144
MYSQL_LEX_CSTRING general_command
Definition: plugin_audit.h:136
MYSQL_LEX_CSTRING general_sql_command
Definition: plugin_audit.h:142
unsigned long long general_rows
Definition: plugin_audit.h:140
CHARSET_INFO * general_charset
Definition: plugin_audit.h:138
MYSQL_LEX_CSTRING general_query
Definition: plugin_audit.h:137
Events for MYSQL_AUDIT_GLOBAL_VARIABLE_CLASS event class.
Definition: plugin_audit.h:341
unsigned long connection_id
Connection id.
Definition: plugin_audit.h:345
mysql_event_global_variable_subclass_t event_subclass
Event subclass.
Definition: plugin_audit.h:343
MYSQL_LEX_CSTRING variable_value
Variable value.
Definition: plugin_audit.h:351
enum_sql_command_t sql_command_id
SQL command id.
Definition: plugin_audit.h:347
MYSQL_LEX_CSTRING variable_name
Variable name.
Definition: plugin_audit.h:349
Structure that stores key-value pair of the MYSQL_AUDIT_MESSAGE_CLASS event class.
Definition: plugin_audit_message_types.h:64
Structure for MYSQL_AUDIT_MESSAGE_CLASS event class.
Definition: plugin_audit.h:604
mysql_event_message_key_value_t * key_value_map
Key value map pointer.
Definition: plugin_audit.h:614
size_t key_value_map_length
Key value map length.
Definition: plugin_audit.h:616
mysql_event_message_subclass_t event_subclass
Event subclass.
Definition: plugin_audit.h:606
MYSQL_LEX_CSTRING message
Message.
Definition: plugin_audit.h:612
MYSQL_LEX_CSTRING component
Component.
Definition: plugin_audit.h:608
MYSQL_LEX_CSTRING producer
Producer.
Definition: plugin_audit.h:610
Data for the MYSQL_AUDIT_PARSE events.
Definition: plugin_audit.h:214
MYSQL_LEX_CSTRING query
input: the original query text
Definition: plugin_audit.h:222
mysql_event_parse_subclass_t event_subclass
MYSQL_AUDIT_[PRE|POST]_PARSE event id.
Definition: plugin_audit.h:216
MYSQL_LEX_CSTRING * rewritten_query
output: returns the null-terminated rewritten query allocated by my_malloc()
Definition: plugin_audit.h:226
mysql_event_parse_rewrite_plugin_flag * flags
one of FLAG_REWRITE_PLUGIN_*
Definition: plugin_audit.h:219
Definition: plugin_audit.h:480
const CHARSET_INFO * query_charset
SQL query charset.
Definition: plugin_audit.h:492
int status
Event status.
Definition: plugin_audit.h:484
mysql_event_query_subclass_t event_subclass
Event subclass.
Definition: plugin_audit.h:482
enum_sql_command_t sql_command_id
SQL command id.
Definition: plugin_audit.h:488
MYSQL_LEX_CSTRING query
SQL query.
Definition: plugin_audit.h:490
unsigned long connection_id
Connection id.
Definition: plugin_audit.h:486
Structure for MYSQL_AUDIT_SERVER_SHUTDOWN_CLASS event class.
Definition: plugin_audit.h:409
mysql_event_server_shutdown_subclass_t event_subclass
Shutdown event.
Definition: plugin_audit.h:411
int exit_code
Exit code associated with the shutdown event.
Definition: plugin_audit.h:413
mysql_server_shutdown_reason_t reason
Shutdown reason.
Definition: plugin_audit.h:415
Structure for MYSQL_AUDIT_SERVER_STARTUP_CLASS event class.
Definition: plugin_audit.h:371
unsigned int argc
Command line arguments count.
Definition: plugin_audit.h:377
const char ** argv
Command line arguments.
Definition: plugin_audit.h:375
mysql_event_server_startup_subclass_t event_subclass
Event subclass.
Definition: plugin_audit.h:373
Definition: plugin_audit.h:512
MYSQL_LEX_CSTRING query
SQL query text.
Definition: plugin_audit.h:520
MYSQL_LEX_CSTRING name
Name of the stored program.
Definition: plugin_audit.h:526
const CHARSET_INFO * query_charset
SQL query charset.
Definition: plugin_audit.h:522
enum_sql_command_t sql_command_id
SQL command id.
Definition: plugin_audit.h:518
unsigned long connection_id
Connection id.
Definition: plugin_audit.h:516
mysql_event_stored_program_subclass_t event_subclass
Event subclass.
Definition: plugin_audit.h:514
MYSQL_LEX_CSTRING database
The Database the procedure is defined in.
Definition: plugin_audit.h:524
void * parameters
Stored program parameters.
Definition: plugin_audit.h:528
Definition: plugin_audit.h:308
MYSQL_LEX_CSTRING query
SQL query.
Definition: plugin_audit.h:316
const CHARSET_INFO * query_charset
SQL query charset.
Definition: plugin_audit.h:318
mysql_event_table_access_subclass_t event_subclass
Event subclass.
Definition: plugin_audit.h:310
unsigned long connection_id
Connection id.
Definition: plugin_audit.h:312
enum_sql_command_t sql_command_id
SQL command id.
Definition: plugin_audit.h:314
MYSQL_LEX_CSTRING table_name
Table name.
Definition: plugin_audit.h:322
MYSQL_LEX_CSTRING table_database
Database name.
Definition: plugin_audit.h:320
The descriptor structure that is referred from st_mysql_plugin.
Definition: plugin_audit.h:71
unsigned long class_mask[MYSQL_AUDIT_CLASS_MASK_SIZE]
An array of bits used to indicate what event classes that this plugin wants to receive.
Definition: plugin_audit.h:97
void(* release_thd)(MYSQL_THD)
Event occurs when the event class consumer is to be disassociated from the specified THD....
Definition: plugin_audit.h:83
int(* event_notify)(MYSQL_THD, mysql_event_class_t, const void *)
Invoked whenever an event occurs which is of any class for which the plugin has interest....
Definition: plugin_audit.h:91
int interface_version
Interface version.
Definition: plugin_audit.h:75