Bonjour

Est-il possible d'empêcher l'utilisation de la commande DROP DATABASE, tout en laissant la possibilité d'utiliser DROP TABLE et DROP VIEW ?

Si ce n'est pas possible, quelqu'un a-t-il une bidouille pour empêcher cette commande dans phpmyadmin ?

Merci d'avance


EDIT : il y a un paramétrage dans phpmyadmin, il faut mettre dans config.inc.php la ligne :
$cfg['AllowUserDropDatabase'] = false;

et éventuellement modifier dans sql.php le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
 * Check rights in case of DROP DATABASE
 *
 * This test may be bypassed if $is_js_confirmed = 1 (already checked with js)
 * but since a malicious user may pass this variable by url/form, we don't take
 * into account this case.
 */
if (!defined('PMA_CHK_DROP')
    && !$cfg['AllowUserDropDatabase']
    && $is_drop_database
    && !$is_superuser) {
    require_once './libraries/header.inc.php';
    PMA_mysqlDie($strNoDropDatabases, '', '', $err_url);
} // end if
en
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
 * Check rights in case of DROP DATABASE
 *
 * This test may be bypassed if $is_js_confirmed = 1 (already checked with js)
 * but since a malicious user may pass this variable by url/form, we don't take
 * into account this case.
 */
if (!defined('PMA_CHK_DROP')
    && !$cfg['AllowUserDropDatabase']
    && $is_drop_database
    /*&& !$is_superuser*/) {
    require_once './libraries/header.inc.php';
    PMA_mysqlDie($strNoDropDatabases, '', '', $err_url);
} // end if
si on veut interdire la commande également pour l'utilisateur root.