-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
MDEV-7500 thread_handling option in my.cnf is not passing "connect ev…
…ents" to audit plugin. The MYSQL_AUDIT_NOTIFY_CONNECTION_CONNECT() call moved to the login_connection() function. So that it'll be invoked in any thread handling mode.
- Loading branch information
Alexey Botchkov
committed
Jun 8, 2015
1 parent
1ae05db
commit 69ed429
Showing
4 changed files
with
508 additions
and
5 deletions.
There are no files selected for viewing
356 changes: 356 additions & 0 deletions
356
mysql-test/suite/plugins/r/thread_pool_server_audit.result
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,356 @@ | ||
install plugin server_audit soname 'server_audit'; | ||
show variables like 'server_audit%'; | ||
Variable_name Value | ||
server_audit_events | ||
server_audit_excl_users | ||
server_audit_file_path server_audit.log | ||
server_audit_file_rotate_now OFF | ||
server_audit_file_rotate_size 1000000 | ||
server_audit_file_rotations 9 | ||
server_audit_incl_users | ||
server_audit_logging OFF | ||
server_audit_mode 0 | ||
server_audit_output_type file | ||
server_audit_query_log_limit 1024 | ||
server_audit_syslog_facility LOG_USER | ||
server_audit_syslog_ident mysql-server_auditing | ||
server_audit_syslog_info | ||
server_audit_syslog_priority LOG_INFO | ||
set global server_audit_file_path=null; | ||
set global server_audit_incl_users=null; | ||
set global server_audit_file_path='server_audit.log'; | ||
set global server_audit_output_type=file; | ||
set global server_audit_logging=on; | ||
connect(localhost,no_such_user,,mysql,MASTER_PORT,MASTER_SOCKET); | ||
ERROR 28000: Access denied for user 'no_such_user'@'localhost' (using password: NO) | ||
set global server_audit_incl_users='odin, dva, tri'; | ||
create table t1 (id int); | ||
set global server_audit_incl_users='odin, root, dva, tri'; | ||
create table t2 (id int); | ||
set global server_audit_excl_users='odin, dva, tri'; | ||
Warnings: | ||
Warning 1 User 'odin' is in the server_audit_incl_users, so wasn't added. | ||
Warning 1 User 'dva' is in the server_audit_incl_users, so wasn't added. | ||
Warning 1 User 'tri' is in the server_audit_incl_users, so wasn't added. | ||
insert into t1 values (1), (2); | ||
select * from t1; | ||
id | ||
1 | ||
2 | ||
set global server_audit_incl_users='odin, root, dva, tri'; | ||
insert into t2 values (1), (2); | ||
select * from t2; | ||
id | ||
1 | ||
2 | ||
alter table t1 rename renamed_t1; | ||
set global server_audit_events='connect,query'; | ||
select 1, | ||
2, | ||
3; | ||
1 2 3 | ||
1 2 3 | ||
insert into t2 values (1), (2); | ||
select * from t2; | ||
id | ||
1 | ||
2 | ||
1 | ||
2 | ||
select * from t_doesnt_exist; | ||
ERROR 42S02: Table 'test.t_doesnt_exist' doesn't exist | ||
syntax_error_query; | ||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'syntax_error_query' at line 1 | ||
drop table renamed_t1, t2; | ||
show variables like 'server_audit%'; | ||
Variable_name Value | ||
server_audit_events CONNECT,QUERY | ||
server_audit_excl_users | ||
server_audit_file_path server_audit.log | ||
server_audit_file_rotate_now OFF | ||
server_audit_file_rotate_size 1000000 | ||
server_audit_file_rotations 9 | ||
server_audit_incl_users odin, root, dva, tri | ||
server_audit_logging ON | ||
server_audit_mode 0 | ||
server_audit_output_type file | ||
server_audit_query_log_limit 1024 | ||
server_audit_syslog_facility LOG_USER | ||
server_audit_syslog_ident mysql-server_auditing | ||
server_audit_syslog_info | ||
server_audit_syslog_priority LOG_INFO | ||
set global server_audit_mode=1; | ||
set global server_audit_events=''; | ||
create database sa_db; | ||
create table t1 (id2 int); | ||
insert into t1 values (1), (2); | ||
select * from t1; | ||
id2 | ||
1 | ||
2 | ||
drop table t1; | ||
use sa_db; | ||
create table sa_t1(id int); | ||
insert into sa_t1 values (1), (2); | ||
drop table sa_t1; | ||
drop database sa_db; | ||
create database sa_db; | ||
use sa_db; | ||
CREATE USER u1 IDENTIFIED BY 'pwd-123'; | ||
GRANT ALL ON sa_db TO u2 IDENTIFIED BY "pwd-321"; | ||
SET PASSWORD FOR u1 = PASSWORD('pwd 098'); | ||
CREATE USER u3 IDENTIFIED BY ''; | ||
drop user u1, u2, u3; | ||
set global server_audit_events='query_ddl'; | ||
create table t1(id int); | ||
insert into t1 values (1), (2); | ||
select * from t1; | ||
id | ||
1 | ||
2 | ||
select 2; | ||
2 | ||
2 | ||
(select 2); | ||
2 | ||
2 | ||
/*! select 2*/; | ||
2 | ||
2 | ||
/*comment*/ select 2; | ||
2 | ||
2 | ||
drop table t1; | ||
set global server_audit_events='query_ddl,query_dml'; | ||
create table t1(id int); | ||
insert into t1 values (1), (2); | ||
select * from t1; | ||
id | ||
1 | ||
2 | ||
select 2; | ||
2 | ||
2 | ||
drop table t1; | ||
set global server_audit_events='query_dml'; | ||
create table t1(id int); | ||
insert into t1 values (1), (2); | ||
select * from t1; | ||
id | ||
1 | ||
2 | ||
select 2; | ||
2 | ||
2 | ||
(select 2); | ||
2 | ||
2 | ||
/*! select 2*/; | ||
2 | ||
2 | ||
/*comment*/ select 2; | ||
2 | ||
2 | ||
drop table t1; | ||
set global server_audit_events='query_dcl'; | ||
create table t1(id int); | ||
insert into t1 values (1), (2); | ||
select * from t1; | ||
id | ||
1 | ||
2 | ||
CREATE USER u1 IDENTIFIED BY 'pwd-123'; | ||
GRANT ALL ON sa_db TO u2 IDENTIFIED BY "pwd-321"; | ||
SET PASSWORD FOR u1 = PASSWORD('pwd 098'); | ||
SET PASSWORD FOR u1=<secret>; | ||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '=<secret>' at line 1 | ||
CREATE USER u3 IDENTIFIED BY ''; | ||
drop user u1, u2, u3; | ||
select 2; | ||
2 | ||
2 | ||
(select 2); | ||
2 | ||
2 | ||
/*! select 2*/; | ||
2 | ||
2 | ||
/*comment*/ select 2; | ||
2 | ||
2 | ||
drop table t1; | ||
set global server_audit_events=''; | ||
set global server_audit_query_log_limit= 15; | ||
select (1), (2), (3), (4); | ||
1 2 3 4 | ||
1 2 3 4 | ||
select 'A', 'B', 'C', 'D'; | ||
A B C D | ||
A B C D | ||
set global server_audit_query_log_limit= 1024; | ||
drop database sa_db; | ||
set global server_audit_file_path='.'; | ||
show status like 'server_audit_current_log'; | ||
Variable_name Value | ||
server_audit_current_log HOME_DIR/server_audit.log | ||
set global server_audit_file_path=''; | ||
show status like 'server_audit_current_log'; | ||
Variable_name Value | ||
server_audit_current_log server_audit.log | ||
set global server_audit_file_path=' '; | ||
show status like 'server_audit_current_log'; | ||
Variable_name Value | ||
server_audit_current_log server_audit.log | ||
set global server_audit_file_path='nonexisting_dir/'; | ||
Warnings: | ||
Warning 1 SERVER AUDIT plugin can't create file 'nonexisting_dir/'. | ||
show status like 'server_audit_current_log'; | ||
Variable_name Value | ||
server_audit_current_log server_audit.log | ||
show variables like 'server_audit%'; | ||
Variable_name Value | ||
server_audit_events | ||
server_audit_excl_users | ||
server_audit_file_path | ||
server_audit_file_rotate_now OFF | ||
server_audit_file_rotate_size 1000000 | ||
server_audit_file_rotations 9 | ||
server_audit_incl_users odin, root, dva, tri | ||
server_audit_logging ON | ||
server_audit_mode 1 | ||
server_audit_output_type file | ||
server_audit_query_log_limit 1024 | ||
server_audit_syslog_facility LOG_USER | ||
server_audit_syslog_ident mysql-server_auditing | ||
server_audit_syslog_info | ||
server_audit_syslog_priority LOG_INFO | ||
uninstall plugin server_audit; | ||
Warnings: | ||
Warning 1620 Plugin is busy and will be uninstalled on shutdown | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'set global server_audit_logging=on',0 | ||
TIME,HOSTNAME,root,localhost,ID,0,CONNECT,mysql,,0 | ||
TIME,HOSTNAME,root,localhost,ID,0,DISCONNECT,mysql,,0 | ||
TIME,HOSTNAME,no_such_user,localhost,ID,0,FAILED_CONNECT,,,ID | ||
TIME,HOSTNAME,no_such_user,localhost,ID,0,DISCONNECT,,,0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'set global server_audit_incl_users=\'odin, root, dva, tri\'',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,CREATE,test,t2, | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'create table t2 (id int)',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'set global server_audit_excl_users=\'odin, dva, tri\'',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'SHOW WARNINGS',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,test,t1, | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'insert into t1 values (1), (2)',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,READ,test,t1, | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'select * from t1',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'set global server_audit_incl_users=\'odin, root, dva, tri\'',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,test,t2, | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'insert into t2 values (1), (2)',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,READ,test,t2, | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'select * from t2',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,READ,test,t1, | ||
TIME,HOSTNAME,root,localhost,ID,ID,ALTER,test,t1, | ||
TIME,HOSTNAME,root,localhost,ID,ID,RENAME,test,t1|test.renamed_t1, | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'alter table t1 rename renamed_t1',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'set global server_audit_events=\'connect,query\'',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'select 1, 2, 3',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'insert into t2 values (1), (2)',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'select * from t2',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'select * from t_doesnt_exist',ID | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'syntax_error_query',ID | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'drop table renamed_t1, t2',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'show variables like \'server_audit%\'',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'set global server_audit_mode=1',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'set global server_audit_events=\'\'',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'create database sa_db',0 | ||
TIME,HOSTNAME,root,localhost,ID,0,CONNECT,test,,0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,CREATE,test,t1, | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'create table t1 (id2 int)',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,test,t1, | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'insert into t1 values (1), (2)',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,READ,test,t1, | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'select * from t1',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,DROP,test,t1, | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'drop table t1',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'use sa_db',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,CREATE,sa_db,sa_t1, | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'create table sa_t1(id int)',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,sa_db,sa_t1, | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'insert into sa_t1 values (1), (2)',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,DROP,sa_db,sa_t1, | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'drop table sa_t1',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,READ,mysql,proc, | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,proc, | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,event, | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'drop database sa_db',0 | ||
TIME,HOSTNAME,root,localhost,ID,0,DISCONNECT,sa_db,,0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'create database sa_db',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'use sa_db',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,user, | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,db, | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,tables_priv, | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,columns_priv, | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,procs_priv, | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,proxies_priv, | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'CREATE USER u1 IDENTIFIED BY *****',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,user, | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,tables_priv, | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'GRANT ALL ON sa_db TO u2 IDENTIFIED BY *****',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,user, | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'SET PASSWORD FOR u1 = PASSWORD(*****)',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,user, | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,db, | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,tables_priv, | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,columns_priv, | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,procs_priv, | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,proxies_priv, | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'CREATE USER u3 IDENTIFIED BY *****',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,user, | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,db, | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,tables_priv, | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,columns_priv, | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,procs_priv, | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,proxies_priv, | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'drop user u1, u2, u3',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'create table t1(id int)',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'drop table t1',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'create table t1(id int)',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'insert into t1 values (1), (2)',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'select * from t1',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'select 2',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'drop table t1',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'insert into t1 values (1), (2)',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'select * from t1',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'select 2',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'(select 2)',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'/*! select 2*/',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'/*comment*/ select 2',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'CREATE USER u1 IDENTIFIED BY *****',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'GRANT ALL ON sa_db TO u2 IDENTIFIED BY *****',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'SET PASSWORD FOR u1 = PASSWORD(*****)',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'SET PASSWORD FOR u1=<secret>',ID | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'CREATE USER u3 IDENTIFIED BY *****',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'drop user u1, u2, u3',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_events=\'\'',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global serv',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'select (1), (2)',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'select \'A\', ',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_query_log_limit= 1024',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,READ,mysql,proc, | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,proc, | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,event, | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'drop database sa_db',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_file_path=\'.\'',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_file_path=\'.\'',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'show status like \'server_audit_current_log\'',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_file_path=\'\'',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_file_path=\'\'',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'show status like \'server_audit_current_log\'',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_file_path=\' \'',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_file_path=\' \'',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'show status like \'server_audit_current_log\'',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_file_path=\'nonexisting_dir/\'',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_file_path=\'nonexisting_dir/\'',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'SHOW WARNINGS',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'show status like \'server_audit_current_log\'',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'show variables like \'server_audit%\'',0 | ||
TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,plugin, | ||
TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'uninstall plugin server_audit',0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
--thread_handling=pool-of-threads | ||
|
Oops, something went wrong.