Server IP : 172.67.216.182 / Your IP : 172.71.81.90 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/perfschema/t/ |
Upload File : |
--echo ## --echo ## Test the Performance Schema-based implementation of SHOW PROCESSLIST. --echo ## --echo ## Verify handling of the SELECT and PROCESS privileges. --echo ## --echo ## Test cases: --echo ## - Execute SHOW PROCESSLIST (new and legacy) with all privileges --echo ## - Execute SELECT on the performance_schema.processlist and information_schema.processlist with all privileges --echo ## - Execute SHOW PROCESSLIST (new and legacy) with no privileges --echo ## - Execute SELECT on the performance_schema.processlist and information_schema.processlist with no privileges --echo ## --echo ## Results must be manually verified. --echo --source include/no_protocol.inc --source include/not_embedded.inc --echo ### Setup ### --echo select @@global.performance_schema_show_processlist into @save_processlist; --echo --echo # Control users create user user_00@localhost, user_01@localhost; grant ALL on *.* to user_00@localhost; grant ALL on *.* to user_01@localhost; --echo --echo # Test users create user user_all@localhost, user_none@localhost; grant ALL on *.* to user_all@localhost; grant USAGE on *.* to user_none@localhost; --echo flush privileges; --echo show grants for user_all@localhost; --echo show grants for user_none@localhost; --echo use test; create table test.t1 (s1 int, s2 int, s3 int, s4 int); --echo --echo # Connect (con_00, localhost, user_00, , ) connect (con_00, localhost, user_00, , ); --echo # Connect (con_01, localhost, user_01, , ) connect (con_01, localhost, user_01, , ); --echo insert into test.t1 values(1, 1, 1, 1); insert into test.t1 values(2, 2, 2, 2); insert into test.t1 values(3, 3, 3, 3); insert into test.t1 values(4, 4, 4, 4); --echo --echo # Lock test.t1, insert/update/deletes will block lock tables t1 read; --echo --echo # Establish 2 connections for user_all --echo # Connect (con_all_1, localhost, user_all, , ) connect (con_all_1, localhost, user_all, , ); --echo # Connect (con_all_2, localhost, user_all, , ) connect (con_all_2, localhost, user_all, , ); --send insert into test.t1 values (0, 0, 0, 0) --echo --echo # Establish 4 connections for user_none --echo # Connect (con_none_1, localhost, user_none, , ) connect (con_none_1, localhost, user_none, , ); --echo # Connect (con_none_2, localhost, user_none, , ) connect (con_none_2, localhost, user_none, , ); --echo # Connect (con_none_3, localhost, user_none, , ) connect (con_none_3, localhost, user_none, , ); --echo # Connect (con_none_4, localhost, user_none, , ) connect (con_none_4, localhost, user_none, , ); --send update test.t1 set s1 = s1 + 1, s2 = s2 + 2; --echo --echo # Connection con_all_1 --connection con_all_1 # Note: When expecting processlist results for all users, the wait_condition # and subsequent execution of SHOW PROCESSLIST should be conducted from the # same connection to ensure consistent values in the Command and Info columns. --echo --echo # Wait for queries to appear in the processlist table let $wait_condition = select count(*) >= 2 from information_schema.processlist where state like '%metadata%'; --source include/wait_condition.inc --echo --echo ### Execute SHOW PROCESSLIST with all privileges --echo ### Expect all users --echo --echo # New SHOW PROCESSLIST let $pfs_spl = on; --source ../include/processlist_set.inc --source ../include/processlist_load.inc --echo --echo # Legacy SHOW PROCESSLIST let $pfs_spl = off; --source ../include/processlist_set.inc --source ../include/processlist_load.inc --echo --echo --echo ### Execute SHOW PROCESSLIST with no SELECT and no PROCESS privileges --echo ### Expect processes only from user_none --echo --echo # New SHOW PROCESSLIST let $pfs_spl = on; --source ../include/processlist_set.inc --echo --echo # Connection con_none_1 --connection con_none_1 --source ../include/processlist_load.inc --echo --echo # Confirm that only processes from user_none are visible --echo select count(*) as "Expect 0" from performance_schema.processlist where user not in ('user_none'); --echo --echo # Legacy SHOW PROCESSLIST --connection con_00 let $pfs_spl = off; --source ../include/processlist_set.inc --echo --echo # Connection con_none_1 --connection con_none_1 --source ../include/processlist_load.inc --echo --echo --echo ### Clean up ### --echo --echo # Disconnect con_00 --connection con_00 --disconnect con_00 --echo # Connection con_01, unlock test.t1, disconnect --connection con_01 unlock tables; --disconnect con_01 --echo # Disconnect con_all_1 --connection con_all_1 --disconnect con_all_1 --echo # Reap con_all_2, disconnect --connection con_all_2 --reap --disconnect con_all_2 --echo # Disconnect con_none_1 --connection con_none_1 --disconnect con_none_1 --echo # Disconnect con_none_2 --connection con_none_2 --disconnect con_none_2 --echo # Disconnect con_none_3 --connection con_none_3 --disconnect con_none_3 --echo # Reap con_none_4, disconnect --connection con_none_4 --reap --disconnect con_none_4 --echo --echo # Connection default --connection default --echo drop table test.t1; drop user user_00@localhost; drop user user_01@localhost; drop user user_all@localhost; drop user user_none@localhost; --echo set @@global.performance_schema_show_processlist = @save_processlist;