Unset foreign_key_checks while testing insert priv and reset it back
Signed-off-by: Deven Bansod <devenbansod.bits@gmail.com>
This commit is contained in:
parent
f5246d1dbe
commit
b0297c5dcc
@ -73,21 +73,32 @@ function PMA_checkRequiredPrivilegesForAdjust()
|
||||
if ($privs_available) {
|
||||
$delete_privs_available = $GLOBALS['dbi']->tryQuery(
|
||||
'DELETE FROM `mysql`.`db` WHERE `host` = "" AND '
|
||||
. '`Db` = "" AND `User` = "" LIMIT 1'
|
||||
. '`Db` = "" AND `User` = ""'
|
||||
);
|
||||
$privs_available = $delete_privs_available && $privs_available;
|
||||
}
|
||||
|
||||
if ($privs_available) {
|
||||
// unset the `foreign_key_checks` temporarily
|
||||
$GLOBALS['dbi']->tryQuery('
|
||||
SET @@session.foreign_key_checks = 0
|
||||
');
|
||||
|
||||
$insert_privs_available = $GLOBALS['dbi']->tryQuery(
|
||||
'INSERT INTO `mysql`.`db`(`host`, `Db`, `User`) VALUES("pma_test_host", '
|
||||
. '"mysql", "pma_test_user")'
|
||||
);
|
||||
|
||||
// set the `foreign_key_checks` back
|
||||
$GLOBALS['dbi']->tryQuery('
|
||||
SET @@session.foreign_key_checks = 1
|
||||
');
|
||||
|
||||
// If successful test insert, delete the test row
|
||||
if ($insert_privs_available) {
|
||||
$GLOBALS['dbi']->tryQuery(
|
||||
'DELETE FROM `mysql`.`db` WHERE host = "pma_test_host" AND '
|
||||
. 'Db = "mysql" AND User = "pma_test_user" LIMIT 1'
|
||||
. 'Db = "mysql" AND User = "pma_test_user"'
|
||||
);
|
||||
}
|
||||
$privs_available = $insert_privs_available && $privs_available;
|
||||
@ -96,7 +107,7 @@ function PMA_checkRequiredPrivilegesForAdjust()
|
||||
if ($privs_available) {
|
||||
$update_privs_available = $GLOBALS['dbi']->tryQuery(
|
||||
'UPDATE `mysql`.`db` SET `host` = "" WHERE `host` = "" AND '
|
||||
. '`Db` = "" AND `User` = "" LIMIT 1'
|
||||
. '`Db` = "" AND `User` = ""'
|
||||
);
|
||||
$privs_available = $update_privs_available && $privs_available;
|
||||
}
|
||||
@ -115,23 +126,34 @@ function PMA_checkRequiredPrivilegesForAdjust()
|
||||
if ($privs_available) {
|
||||
$delete_privs_available = $GLOBALS['dbi']->tryQuery(
|
||||
'DELETE FROM `mysql`.`columns_priv` WHERE `host` = "" AND '
|
||||
. '`Db` = "" AND `User` = "" LIMIT 1'
|
||||
. '`Db` = "" AND `User` = ""'
|
||||
);
|
||||
$privs_available = $delete_privs_available && $privs_available;
|
||||
}
|
||||
|
||||
if ($privs_available) {
|
||||
// unset the `foreign_key_checks` temporarily
|
||||
$GLOBALS['dbi']->tryQuery('
|
||||
SET @@session.foreign_key_checks = 0
|
||||
');
|
||||
|
||||
$insert_privs_available = $GLOBALS['dbi']->tryQuery(
|
||||
'INSERT INTO `mysql`.`columns_priv`(`host`, `Db`, `User`, `Table_name`,'
|
||||
. ' `Column_name`) VALUES("pma_test_host", '
|
||||
. '"mysql", "pma_test_user", "", "")'
|
||||
);
|
||||
|
||||
// set the `foreign_key_checks` back
|
||||
$GLOBALS['dbi']->tryQuery('
|
||||
SET @@session.foreign_key_checks = 1
|
||||
');
|
||||
|
||||
// If successful test insert, delete the test row
|
||||
if ($insert_privs_available) {
|
||||
$GLOBALS['dbi']->tryQuery(
|
||||
'DELETE FROM `mysql`.`columns_priv` WHERE host = "pma_test_host" AND '
|
||||
. 'Db = "mysql" AND User = "pma_test_user" AND Table_name = ""'
|
||||
. ' AND Column_name = "" LIMIT 1'
|
||||
. ' AND Column_name = ""'
|
||||
);
|
||||
}
|
||||
$privs_available = $insert_privs_available && $privs_available;
|
||||
@ -140,7 +162,7 @@ function PMA_checkRequiredPrivilegesForAdjust()
|
||||
if ($privs_available) {
|
||||
$update_privs_available = $GLOBALS['dbi']->tryQuery(
|
||||
'UPDATE `mysql`.`columns_priv` SET `host` = "" WHERE `host` = "" AND '
|
||||
. '`Db` = "" AND `User` = "" AND Column_name = "" AND Table_name = "" LIMIT 1'
|
||||
. '`Db` = "" AND `User` = "" AND Column_name = "" AND Table_name = ""'
|
||||
);
|
||||
$privs_available = $update_privs_available && $privs_available;
|
||||
|
||||
@ -160,22 +182,33 @@ function PMA_checkRequiredPrivilegesForAdjust()
|
||||
if ($privs_available) {
|
||||
$delete_privs_available = $GLOBALS['dbi']->tryQuery(
|
||||
'DELETE FROM `mysql`.`tables_priv` WHERE `host` = "" AND '
|
||||
. '`Db` = "" AND `User` = "" AND Table_name = "" LIMIT 1'
|
||||
. '`Db` = "" AND `User` = "" AND Table_name = ""'
|
||||
);
|
||||
$privs_available = $delete_privs_available && $privs_available;
|
||||
}
|
||||
|
||||
if ($privs_available) {
|
||||
// unset the `foreign_key_checks` temporarily
|
||||
$GLOBALS['dbi']->tryQuery('
|
||||
SET @@session.foreign_key_checks = 0
|
||||
');
|
||||
|
||||
$insert_privs_available = $GLOBALS['dbi']->tryQuery(
|
||||
'INSERT INTO `mysql`.`tables_priv`(`host`, `Db`, `User`, `Table_name`'
|
||||
. ') VALUES("pma_test_host", '
|
||||
. '"mysql", "pma_test_user", "")'
|
||||
);
|
||||
|
||||
// set the `foreign_key_checks` back
|
||||
$GLOBALS['dbi']->tryQuery('
|
||||
SET @@session.foreign_key_checks = 1
|
||||
');
|
||||
|
||||
// If successful test insert, delete the test row
|
||||
if ($insert_privs_available) {
|
||||
$GLOBALS['dbi']->tryQuery(
|
||||
'DELETE FROM `mysql`.`tables_priv` WHERE host = "pma_test_host" AND '
|
||||
. 'Db = "mysql" AND User = "pma_test_user" AND Table_name = "" LIMIT 1'
|
||||
. 'Db = "mysql" AND User = "pma_test_user" AND Table_name = ""'
|
||||
);
|
||||
}
|
||||
$privs_available = $insert_privs_available && $privs_available;
|
||||
@ -184,7 +217,7 @@ function PMA_checkRequiredPrivilegesForAdjust()
|
||||
if ($privs_available) {
|
||||
$update_privs_available = $GLOBALS['dbi']->tryQuery(
|
||||
'UPDATE `mysql`.`tables_priv` SET `host` = "" WHERE `host` = "" AND '
|
||||
. '`Db` = "" AND `User` = "" AND Table_name = "" LIMIT 1'
|
||||
. '`Db` = "" AND `User` = "" AND Table_name = ""'
|
||||
);
|
||||
$privs_available = $update_privs_available && $privs_available;
|
||||
|
||||
@ -205,23 +238,34 @@ function PMA_checkRequiredPrivilegesForAdjust()
|
||||
$delete_privs_available = $GLOBALS['dbi']->tryQuery(
|
||||
'DELETE FROM `mysql`.`procs_priv` WHERE `host` = "" AND '
|
||||
. '`Db` = "" AND `User` = "" AND `Routine_name` = ""'
|
||||
. ' AND `Routine_type` = "" LIMIT 1'
|
||||
. ' AND `Routine_type` = ""'
|
||||
);
|
||||
$privs_available = $delete_privs_available && $privs_available;
|
||||
}
|
||||
|
||||
if ($privs_available) {
|
||||
// unset the `foreign_key_checks` temporarily
|
||||
$GLOBALS['dbi']->tryQuery('
|
||||
SET @@session.foreign_key_checks = 0
|
||||
');
|
||||
|
||||
$insert_privs_available = $GLOBALS['dbi']->tryQuery(
|
||||
'INSERT INTO `mysql`.`procs_priv`(`host`, `Db`, `User`, `Routine_name`,'
|
||||
. ' `Routine_type`) VALUES("pma_test_host", '
|
||||
. '"mysql", "pma_test_user", "", "PROCEDURE")'
|
||||
);
|
||||
|
||||
// set the `foreign_key_checks` back
|
||||
$GLOBALS['dbi']->tryQuery('
|
||||
SET @@session.foreign_key_checks = 1
|
||||
');
|
||||
|
||||
// If successful test insert, delete the test row
|
||||
if ($insert_privs_available) {
|
||||
$GLOBALS['dbi']->tryQuery(
|
||||
'DELETE FROM `mysql`.`procs_priv` WHERE `host` = "pma_test_host" AND '
|
||||
. '`Db` = "mysql" AND `User` = "pma_test_user" AND `Routine_name` = ""'
|
||||
. ' AND `Routine_type` = "PROCEDURE" LIMIT 1'
|
||||
. ' AND `Routine_type` = "PROCEDURE"'
|
||||
);
|
||||
}
|
||||
$privs_available = $insert_privs_available && $privs_available;
|
||||
@ -230,7 +274,7 @@ function PMA_checkRequiredPrivilegesForAdjust()
|
||||
if ($privs_available) {
|
||||
$update_privs_available = $GLOBALS['dbi']->tryQuery(
|
||||
'UPDATE `mysql`.`procs_priv` SET `host` = "" WHERE `host` = "" AND '
|
||||
. '`Db` = "" AND `User` = "" AND `Routine_name` = "" LIMIT 1'
|
||||
. '`Db` = "" AND `User` = "" AND `Routine_name` = ""'
|
||||
);
|
||||
$privs_available = $update_privs_available && $privs_available;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user