403Webshell
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/server/mysql/src/mysql-test/suite/perfschema/t/processlist_acl.test
--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;

Youez - 2016 - github.com/yon3zu
LinuXploit