Tous les produits
Search
Centre de documentation

PolarDB:Configurer une règle de liste de blocage

Dernière mise à jour :Aug 27, 2026

Créez, activez, désactivez, modifiez et supprimez des règles de liste de blocage dans la console PolarDB. Cette rubrique décrit les règles de liste de blocage et explique comment les configurer.

Règles de liste de blocage

Le proxy offre une fonctionnalité de blocage. Configurez des règles de liste de blocage pour bloquer certains types d'instructions SQL ou des instructions SQL spécifiques.

Il existe trois modes de configuration des règles de liste de blocage :

  • fixed rule mode : Mode courant pour la configuration des règles de liste de blocage dans la console. Chaque règle s'applique à un compte et à un cluster spécifiques. Pour obtenir la liste des règles courantes prises en charge, consultez la section Configurer des règles de pare-feu SQL.

  • custom parameterized SQL mode : Ce mode paramètre toutes les variables de vos instructions SQL et enregistre le modèle généré dans la base de données. Le proxy bloque ensuite toute instruction SQL correspondant à ce modèle.

  • custom SQL mode : Ce mode bloque une instruction SQL spécifique telle quelle, sans paramétrer les variables. Les instructions SQL comportant des paramètres différents ne sont pas affectées.

Créer une règle de liste de blocage

  1. Connectez-vous à la console PolarDB.

  2. Dans le coin supérieur gauche, sélectionnez la région où le cluster est déployé.

  3. Localisez le cluster cible et cliquez sur son ID.

  4. Dans le volet de navigation de gauche, choisissez Settings and Management > Security.

  5. Sous l'onglet SQL Firewall, cliquez sur Add à gauche.

  6. Dans la boîte de dialogue Create a Rule, configurez les paramètres selon le mode de liste de blocage souhaité.

    • fixed rule mode

      1. Si vous sélectionnez fixed rule mode, configurez les paramètres suivants.

        Tableau 1. Paramètres des règles de pare-feu SQL

        Paramètre

        Obligatoire

        Description

        Basic Information

        Rule Name

        Oui

        Nom de la règle de pare-feu SQL. Le nom doit respecter les exigences suivantes :

        • Être composé de lettres et de chiffres.

        • Compter jusqu'à 30 caractères.

        Description

        Non

        Description permettant une identification et une gestion simplifiées.

        Remarque

        La description peut contenir jusqu'à 64 caractères.

        Endpoint

        Oui

        Endpoint auquel la règle s'applique.

        Configurations

        Rule Type

        Oui

        Sélectionnez Blacklist Rule.

        Current Mode

        Non

        Mode de la règle de pare-feu SQL. Ce paramètre est toujours défini sur Protection Mode, ce qui signifie que les instructions SQL correspondant à une règle de liste de blocage sont bloquées.

        Database Account Name

        Non

        Comptes de base de données auxquels cette règle s'applique. Les options suivantes sont disponibles :

        • All Accounts : Applique la règle à tous les comptes de base de données du cluster. Aucun texte n'est requis dans la zone de saisie.

        • Include : Applique la règle uniquement aux comptes de base de données spécifiés. Saisissez un ou plusieurs noms de compte séparés par des virgules.

        • Exclude : Applique la règle à tous les comptes de base de données du cluster, à l'exception de ceux que vous spécifiez. Saisissez un ou plusieurs noms de compte séparés par des virgules.

        Remarque

        Le nom du compte de base de données saisi doit respecter l'un des formats suivants :

        • AccountName. Exemple : user.

        • AccountName@IPAddress. Exemple : user@10.0.0.0.

        Block SQLs With Asterisks (*)

        Non

        Bloque les instructions SQL contenant un astérisque (*). Valeurs valides :

        • Enable : Bloque les instructions SQL contenant un astérisque (*).

        • Close : Ne bloque pas les instructions SQL contenant un astérisque (*).

        Block SQLs of Specific Types

        Non

        Bloque des types spécifiques d'instructions SQL. Valeurs valides :

        • Enable : Bloque des types spécifiques d'instructions SQL. Si vous activez l'option Block SQLs of Specific Types, vous devez sélectionner au moins un type. Types pris en charge :

          • CREATE

          • DROP

          • ALTER

          • TRUNCATE

          • RENAME

          • INSERT

          • UPDATE

          • SELECT

          • DELETE

        • Close : Ne bloque pas les types spécifiques d'instructions SQL.

        Block SQLs Without WHERE

        Non

        Bloque les instructions SQL ne comportant pas de clause WHERE. Valeurs valides :

        • Enable : Bloque les types spécifiés d'instructions SQL ne comportant pas de clause WHERE. Si vous activez l'option Block SQLs Without WHERE, vous devez sélectionner au moins un type. Types pris en charge :

          • UPDATE

          • SELECT

          • DELETE

        • Close : Ne bloque pas les instructions SQL ne comportant pas de clause WHERE.

        Remarque

        Ce paramètre s'applique uniquement aux instructions SELECT, UPDATE et DELETE contenant au moins un nom de table. Le proxy ne bloque pas les instructions telles que SELECT 1;.

        Block SQLs With Specific Columns

        Non

        Bloque les instructions SQL contenant des noms de colonne spécifiques. Valeurs valides :

        • Enable : Bloque les instructions SQL contenant des noms de colonne spécifiques. Si vous activez l'option Block SQLs With Specific Columns, les options suivantes sont disponibles :

          • All : Applique la règle à tous les noms de colonne du cluster. Aucun texte n'est requis dans la zone de saisie.

          • Include : Applique la règle uniquement aux noms de colonne spécifiés. Vous devez saisir un ou plusieurs noms de colonne séparés par des virgules (,).

          • Exclude : Applique la règle à tous les noms de colonne du cluster, à l'exception de ceux que vous spécifiez. Vous devez saisir un ou plusieurs noms de colonne séparés par des virgules (,).

        • Close : Ne bloque pas les instructions SQL contenant des noms de colonne spécifiques.

        Block SQLs With Specific Functions

        Non

        Bloque les instructions SQL utilisant des fonctions spécifiques. Valeurs valides :

        • Enable : Bloque les instructions SQL utilisant des fonctions spécifiques. Si vous activez l'option Block SQLs With Specific Functions, les options suivantes sont disponibles :

          • All : Applique la règle à toutes les fonctions exécutées dans les bases de données du cluster. Aucun texte n'est requis dans la zone de saisie.

          • Include : Applique la règle uniquement aux fonctions spécifiées. Vous devez saisir un ou plusieurs noms de fonction séparés par des virgules (,).

          • Exclude : Applique la règle à toutes les fonctions, à l'exception de celles que vous spécifiez. Vous devez saisir un ou plusieurs noms de fonction séparés par des virgules (,).

        • Close : Ne bloque pas les instructions SQL utilisant des fonctions spécifiques.

        Block SQLs With Specific Columns and Specific Functions

        Non

        Bloque les instructions SQL contenant des fonctions spécifiques et faisant référence à des noms de colonne spécifiques. Valeurs valides :

        • Enable : Bloque les instructions SQL contenant des fonctions spécifiques et faisant référence à des noms de colonne spécifiques. Si vous activez l'option Block SQLs With Specific Columns and Specific Functions, vous devez saisir une ou plusieurs valeurs pour les champs Function Name et Column Name. Plus précisément :

          • Si Function Name est défini sur Include et si Column Name est également défini sur Include, la règle s'applique aux instructions SQL du cluster qui utilisent une fonction spécifique et font référence à un nom de colonne spécifique.

          • Si Function Name est défini sur Include et si Column Name est défini sur Exclude, la règle s'applique aux instructions qui utilisent une fonction spécifiée sur n'importe quelle colonne, à l'exception de celles spécifiées.

          • Si Function Name est défini sur Exclude et si Column Name est défini sur Include, la règle s'applique aux instructions qui utilisent n'importe quelle fonction, à l'exception de celles spécifiées, sur une colonne spécifiée.

          • Si vous sélectionnez Exclude pour Function Name et également Exclude pour Column Name, cela signifie que la règle s'applique aux instructions SQL du cluster qui utilisent des fonctions autres que celles spécifiées et font référence à des colonnes autres que celles spécifiées.

        • Close : Ne bloque pas les instructions SQL contenant des fonctions spécifiques et faisant référence à des noms de colonne spécifiques.

      2. Une fois la règle configurée, cliquez sur OK.

    • custom parameterized SQL mode

      1. Si vous sélectionnez custom parameterized SQL mode, configurez les paramètres requis. Pour plus d'informations, consultez la section Paramètres des règles de pare-feu SQL.

        Remarque

        Lorsque vous utilisez le custom parameterized SQL mode, il n'est pas nécessaire d'activer des règles de blocage sous Configurations.

      2. Une fois la règle configurée, cliquez sur OK.

      3. Utilisez le Database Account Name de l'étape précédente pour vous connecter à l'endpoint de base de données spécifié. Pour bloquer une instruction SQL, ajoutez la commande hint /* store_to_blacklist */ avant l'instruction. Par exemple, pour bloquer l'instruction SQL select id from sqlblack_test where id = 1;, exécutez la commande suivante :

        /* store_to_blacklist */ select id from sqlblack_test where id = 1;

        Le modèle paramétré est le suivant :

        select id from sqlblack_test where id = ?

        Dans ce modèle, ? représente n'importe quelle valeur.

        Au bout d'environ 5 secondes, le proxy bloque toute instruction SQL de ce compte correspondant au modèle. L'erreur suivante est renvoyée :

        ERROR 1141 (HY000): This SQL is rejected by SQL Firewall. Access denied for user 'xxx'@'x.x.x.x' to database 'xzh': This SQL is on blacklist bl_test.

        Dans ce message, bl_test correspond au nom de la règle de liste de blocage.

      Remarque
      • Si vous utilisez le client en ligne de commande MySQL, vous devez ajouter l'option -c. Sinon, la commande hint ne prendra pas effet.

      • La règle prend effet au bout d'environ 5 secondes.

    • custom SQL mode

      1. Si vous sélectionnez custom SQL mode, configurez les paramètres requis. Pour plus d'informations, consultez la section Paramètres des règles de pare-feu SQL.

        Remarque

        Lorsque vous utilisez le custom SQL mode, il n'est pas nécessaire d'activer des règles de blocage sous Configurations.

      2. Une fois la règle configurée, cliquez sur OK.

      3. Utilisez le Database Account Name de l'étape précédente pour vous connecter à l'endpoint de base de données spécifié. Pour bloquer une instruction SQL, ajoutez la commande hint /* orginal_store_to_blacklist */ avant l'instruction. Par exemple, pour bloquer l'instruction update t set k = 2 where id = 2;, exécutez la commande suivante :

        /* orginal_store_to_blacklist */ update t set k = 2 where id = 2;

        Au bout d'environ 5 secondes, lorsque vous utilisez ce compte pour exécuter l'instruction SQL exacte update t set k = 2 where id = 2;, le proxy bloque l'instruction. Les autres instructions SQL ne sont pas affectées. L'erreur suivante est renvoyée :

        ERROR 1141 (HY000): This SQL is rejected by SQL Firewall. Access denied for user 'xxx'@'x.x.x.x' to database 'xzh': This SQL is on blacklist bl_test.

        Dans ce message, bl_test correspond au nom de la règle de liste de blocage.

      Remarque
      • Si vous utilisez le client en ligne de commande MySQL, vous devez ajouter l'option -c. Sinon, la commande hint ne prendra pas effet.

      • La règle prend effet au bout d'environ 5 secondes.

Activer ou désactiver une règle de liste de blocage

  1. Connectez-vous à la console PolarDB.

  2. Dans le coin supérieur gauche, sélectionnez la région où le cluster est déployé.

  3. Localisez le cluster cible et cliquez sur son ID.

  4. Dans le volet de navigation de gauche, choisissez Settings and Management > Security.

  5. Sous l'onglet SQL Firewall, localisez la règle à activer ou désactiver, puis cliquez sur le commutateur Enable/Disable.

    Remarque

    Vous pouvez également sélectionner plusieurs règles dans la liste, puis cliquer sur Enable ou Disable en bas de la liste pour les activer ou les désactiver en masse.

  6. Dans la boîte de dialogue Enable ou Disable qui s'affiche, cliquez sur OK.

Modifier une règle de liste de blocage

  1. Connectez-vous à la console PolarDB.

  2. Dans le coin supérieur gauche, sélectionnez la région où le cluster est déployé.

  3. Localisez le cluster cible et cliquez sur son ID.

  4. Dans le volet de navigation de gauche, choisissez Settings and Management > Security.

  5. Sous l'onglet SQL Firewall, localisez la règle à modifier, puis cliquez sur Modify dans la colonne Operation. Dans la boîte de dialogue Modify A Rule, modifiez les paramètres. Pour plus de détails sur les paramètres, consultez la section Paramètres des règles de pare-feu SQL.

    Remarque

    Vous ne pouvez pas modifier le Rule Name d'une règle.

  6. Une fois la règle modifiée, cliquez sur OK.

Remarque

Depuis la console, vous ne pouvez pas modifier les instructions SQL paramétrées dans les règles créées avec le custom parameterized SQL mode, ni les instructions SQL spécifiques dans les règles créées avec le custom SQL mode. Pour modifier ces instructions, vous devez les supprimer de la table de base de données, puis les ajouter à nouveau.

Supprimer une règle de liste de blocage

  1. Connectez-vous à la console PolarDB.

  2. Dans le coin supérieur gauche, sélectionnez la région où le cluster est déployé.

  3. Localisez le cluster cible et cliquez sur son ID.

  4. Dans le volet de navigation de gauche, choisissez Settings and Management > Security.

  5. Sous l'onglet SQL Firewall, localisez la règle à supprimer, puis cliquez sur Delete dans la colonne Operation.

    Remarque

    Vous pouvez également sélectionner plusieurs règles dans la liste, puis cliquer sur Delete en bas de la liste pour les supprimer en masse.

  6. Dans la boîte de dialogue Delete qui s'affiche, cliquez sur OK.

Supprimer des règles pour les modes personnalisés

  • Règle de liste de blocage en custom parameterized SQL mode

    Vous pouvez supprimer une règle de liste de blocage en custom parameterized SQL mode de l'une des manières suivantes :

    • Supprimez une règle de liste de blocage pour le custom parameterized SQL mode en activant ou désactivant une règle de liste de blocage ou en supprimant une règle de liste de blocage.

      Remarque

      Si vous désactivez simplement la règle de liste de blocage dans la console sans supprimer l'instruction SQL paramétrée correspondante de la table proxy_auditing.sql_list, la règle reprendra effet si vous la réactivez pour le même compte.

    • Connectez-vous au nœud principal de l'endpoint à l'aide d'un compte super administrateur, puis supprimez l'instruction SQL correspondante de la table proxy_auditing.sql_list. Au bout d'environ 5 secondes, le proxy ne bloquera plus l'instruction.

      Remarque

      N'utilisez pas la commande DROP pour supprimer la table.

  • Règle de liste de blocage en custom SQL mode

    Vous pouvez supprimer une règle de liste de blocage en custom SQL mode de l'une des manières suivantes :

    • Pour gérer une règle de liste de blocage en custom SQL mode, vous pouvez activer ou désactiver une règle de liste de blocage ou supprimer une règle de liste de blocage.

      Remarque

      Si vous désactivez simplement la règle de liste de blocage dans la console sans supprimer l'instruction SQL correspondante de la table proxy_auditing.org_sql_list, la règle reprendra effet si vous la réactivez pour le même compte.

    • Connectez-vous au nœud principal de l'endpoint à l'aide d'un compte super administrateur, puis supprimez l'instruction SQL correspondante de la table proxy_auditing.org_sql_list. Au bout d'environ 5 secondes, le proxy ne bloquera plus l'instruction.

      Remarque

      N'utilisez pas la commande DROP pour supprimer la table.