Server IP : 104.21.38.3 / Your IP : 162.158.190.14 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /www/server/mysql/src/mysql-test/suite/connection_control/t/ |
Upload File : |
# Skip the test in embedded mode --source include/not_embedded.inc # Make sure that connection_control plugin can be loaded --source ../inc/have_connection_control_plugin.inc # Save the initial number of concurrent sessions --source include/count_sessions.inc --echo # Connection delay tests for valid user accounts --echo --echo # ---------------------------------------------------------------------- --echo --echo # Setup --echo # Install connection_control plugin --source ../inc/install_connection_control_plugin.inc --echo # Create user accounts for testing CREATE USER u1@localhost IDENTIFIED BY 'abcd'; CREATE USER u2@localhost IDENTIFIED BY 'abcd'; CREATE USER u3@localhost IDENTIFIED BY 'abcd'; --echo # Save original values of connection_control variables SET @saved_connections_threshold = @@global.connection_control_failed_connections_threshold; -- echo # Avoid triggering delay SET @@global.connection_control_failed_connections_threshold = 100; # We don't need to use client side authentication plugin for this test. let $USE_AUTH_PLUGIN= 0; --echo --echo # ---------------------------------------------------------------------- --echo --replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT --error ER_ACCESS_DENIED_ERROR connect(fail_con_u1, localhost, u1,,,,,); --replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT --error ER_ACCESS_DENIED_ERROR connect(fail_con_u1, localhost, u1,haha,,,,); --replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT --error ER_ACCESS_DENIED_ERROR connect(fail_con_u2, localhost, u2,efgh,,,,); -- echo # connection_control_failed_login_attempts should contain entries -- echo # for u1@localhost and u2@localhost --sorted_result SELECT * FROM INFORMATION_SCHEMA.connection_control_failed_login_attempts; --replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT --error ER_ACCESS_DENIED_ERROR connect(fail_con_u3, localhost, u3,,,,,); --replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT --error ER_ACCESS_DENIED_ERROR connect(fail_con_u2, localhost, u2,haha,,,,); --replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT --error ER_ACCESS_DENIED_ERROR connect(fail_con_u3, localhost, u3,efgh,,,,); -- echo # connection_control_failed_login_attempts should contain entries -- echo # for u1@localhost, u2@localhost and u3@localhost --sorted_result SELECT * FROM INFORMATION_SCHEMA.connection_control_failed_login_attempts; --replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT --error ER_ACCESS_DENIED_ERROR connect(fail_con_u2, localhost, u2,,,,,); --replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT --error ER_ACCESS_DENIED_ERROR connect(fail_con_u1, localhost, u1,haha,,,,); --replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT --error ER_ACCESS_DENIED_ERROR connect(fail_con_u3, localhost, u3,efgh,,,,); -- echo # failed connection counts should have increased for all users --sorted_result SELECT * FROM INFORMATION_SCHEMA.connection_control_failed_login_attempts; --replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT --error ER_ACCESS_DENIED_ERROR connect(fail_con_u2, localhost, u2,,,,,); --replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT --error ER_ACCESS_DENIED_ERROR connect(fail_con_u1, localhost, u1,haha,,,,); --replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT --error ER_ACCESS_DENIED_ERROR connect(fail_con_u3, localhost, u3,efgh,,,,); --replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT --error ER_ACCESS_DENIED_ERROR connect(fail_con_u1, localhost, u1,haha,,,,); --replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT --error ER_ACCESS_DENIED_ERROR connect(fail_con_u3, localhost, u3,efgh,,,,); --replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT --error ER_ACCESS_DENIED_ERROR connect(fail_con_u1, localhost, u1,haha,,,,); -- echo # Try various queries --sorted_result SELECT * FROM INFORMATION_SCHEMA.connection_control_failed_login_attempts WHERE USERHOST = '\'u1\'@\'localhost\''; --sorted_result SELECT * FROM INFORMATION_SCHEMA.connection_control_failed_login_attempts WHERE USERHOST LIKE '%u2%'; --sorted_result SELECT * FROM INFORMATION_SCHEMA.connection_control_failed_login_attempts WHERE FAILED_ATTEMPTS > 4; --sorted_result SELECT * FROM INFORMATION_SCHEMA.connection_control_failed_login_attempts WHERE FAILED_ATTEMPTS > 5; --sorted_result SELECT * FROM INFORMATION_SCHEMA.connection_control_failed_login_attempts WHERE FAILED_ATTEMPTS < 5; connect(con_u1, localhost, u1,abcd,,,,); connect(con_u2, localhost, u2,abcd,,,,); connection default; --disconnect con_u1 --disconnect con_u2 --echo # After successful login, corresponding entry should disappear --echo # from the view --sorted_result SELECT * FROM INFORMATION_SCHEMA.connection_control_failed_login_attempts; connect(con_u3, localhost, u3,abcd,,,,); --echo # A user without privileges should not be able to any information --sorted_result SELECT * FROM INFORMATION_SCHEMA.connection_control_failed_login_attempts; connection default; --disconnect con_u3 --replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT --error ER_ACCESS_DENIED_ERROR connect(fail_con_u1, localhost, u1,,,,,); --replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT --error ER_ACCESS_DENIED_ERROR connect(fail_con_u3, localhost, u3,haha,,,,); --replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT --error ER_ACCESS_DENIED_ERROR connect(fail_con_u2, localhost, u2,efgh,,,,); -- echo # Subsequent failed attempts should put entries back in the view --sorted_result SELECT * FROM INFORMATION_SCHEMA.connection_control_failed_login_attempts; --replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT --error ER_ACCESS_DENIED_ERROR connect(fail_con_u4, localhost, u4,,,,,); --replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT --error ER_ACCESS_DENIED_ERROR connect(fail_con_u5, localhost, u5,haha,,,,); --replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT --error ER_ACCESS_DENIED_ERROR connect(fail_con_u6, localhost, u6,efgh,,,,); -- echo # Attempts by invalid accounts should be shown in the view --sorted_result SELECT * FROM INFORMATION_SCHEMA.connection_control_failed_login_attempts; --echo --echo # ---------------------------------------------------------------------- --echo --echo # Cleanup connection default; --echo # Restore original values of conenction_control variables SET @@global.connection_control_failed_connections_threshold = @saved_connections_threshold; --echo # Remove user accounts created for the test DROP USER u1@localhost; DROP USER u2@localhost; DROP USER u3@localhost; --echo # Uninstall connection_control plugin --source ../inc/uninstall_connection_control_plugin.inc # Wait till all disconnects are completed. --source include/wait_until_count_sessions.inc --echo --echo # ----------------------------------------------------------------------