From 8ad474dda0458c69b6a29f1b2ad1984b22662bce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20=C4=8Ciha=C5=99?= Date: Fri, 8 Jan 2016 11:33:57 +0100 Subject: [PATCH] Do not invoke FLUSH PRIVILEGES when server in --skip-grant-tables MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In this case we know the user has all privileges, so there is no need to check it. Also FLUSH PRIVILEGES causes --skip-grant-tables to end, making all previous checks invalid. Fixes #11828 Signed-off-by: Michal Čihař --- ChangeLog | 1 + libraries/check_user_privileges.lib.php | 17 +++++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 07a11d3bce..aa04fd9b8e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20,6 +20,7 @@ phpMyAdmin - ChangeLog - issue #11820 Fix hiding of page content behind menu - issue #11780 FROM clause not generated after loading search bookmark - issue #11826 Fix creating/editing VIEW with DEFINER containing special chars +- issue #11828 Do not invoke FLUSH PRIVILEGES when server in --skip-grant-tables 4.5.3.1 (2015-12-25) - issue #11774 Undefined offset 2 diff --git a/libraries/check_user_privileges.lib.php b/libraries/check_user_privileges.lib.php index 47fd0db338..dbcca9a57f 100644 --- a/libraries/check_user_privileges.lib.php +++ b/libraries/check_user_privileges.lib.php @@ -457,15 +457,20 @@ if (!PMA_DRIZZLE) { $GLOBALS['db_to_create'] = ''; $GLOBALS['dbs_where_create_table_allowed'] = array('*'); $GLOBALS['dbs_to_test'] = false; + $GLOBALS['flush_priv'] = true; + $GLOBALS['db_priv'] = true; + $GLOBALS['col_priv'] = true; + $GLOBALS['table_priv'] = true; + $GLOBALS['proc_priv'] = true; } else { PMA_analyseShowGrant(); - } - // Check if privileges to 'mysql'.col_privs, 'mysql'.db, - // 'mysql'.table_privs, 'mysql'.proc_privs and privileges for - // flushing the privileges are available - PMA_checkRequiredPrivilegesForFlushing(); - PMA_checkRequiredPrivilegesForAdjust(); + // Check if privileges to 'mysql'.col_privs, 'mysql'.db, + // 'mysql'.table_privs, 'mysql'.proc_privs and privileges for + // flushing the privileges are available + PMA_checkRequiredPrivilegesForFlushing(); + PMA_checkRequiredPrivilegesForAdjust(); + } } else { // todo: for simple_user_policy only database with user's login can be created