全部产品
Search
文档中心

PolarDB:Konfigurasikan aturan blacklist

更新时间:Jul 02, 2025

Anda dapat membuat, menghapus, mengaktifkan, menonaktifkan, atau memodifikasi aturan blacklist untuk kluster di konsol PolarDB. Topik ini menjelaskan apa itu aturan blacklist dan cara mengonfigurasinya.

Aturan blacklist

PolarProxy memungkinkan Anda mengonfigurasi aturan blacklist untuk memblokir jenis-jenis pernyataan SQL tertentu atau pernyataan SQL spesifik.

Anda dapat mengonfigurasi aturan blacklist dengan salah satu cara berikut:

  • Fixed rule mode: Anda dapat mengonfigurasi aturan blacklist umum di konsol PolarDB. Setiap aturan dapat dikonfigurasi untuk berlaku pada akun Alibaba Cloud atau kluster. Untuk informasi lebih lanjut tentang aturan blacklist umum, lihat Tambahkan Aturan Blacklist.

  • Custom parameterized SQL mode: Anda dapat memarameterisasi semua variabel dalam pernyataan SQL yang ingin dieksekusi di database, menghasilkan template berparameter, dan mencatat template tersebut di database. PolarProxy memblokir pernyataan SQL yang cocok dengan template berparameter.

  • Custom SQL mode: Anda dapat menentukan pernyataan SQL yang akan diblokir tanpa perlu memarameterisasi variabel dari pernyataan tersebut. Pernyataan SQL yang menggunakan parameter lain tidak diblokir.

Buat aturan blacklist

  1. Di pojok kiri atas, pilih wilayah tempat kluster diterapkan.

  2. Temukan kluster dan klik ID-nya.

  3. Di panel navigasi sisi kiri, pilih Settings and Management > Security Management.

  4. Di pojok kiri atas tab SQL Firewall, klik Add.

  5. Di kotak dialog Create a Rule, konfigurasikan parameter yang diperlukan berdasarkan mode yang dipilih.

    • Fixed rule mode

      1. Jika Anda memilih fixed rule mode, konfigurasikan parameter yang dijelaskan dalam tabel berikut.

        Tabel 1. Parameter Aturan Blacklist

        Parameter

        Diperlukan

        Deskripsi

        Basic Information

        Rule Name

        Ya

        Nama aturan. Nama harus memenuhi persyaratan berikut:

        • Dapat berisi angka dan huruf.

        • Dapat memiliki panjang hingga 30 karakter.

        Description

        Tidak

        Deskripsi aturan.

        Catatan

        Deskripsi dapat memiliki panjang hingga 64 karakter.

        Endpoint

        Ya

        Titik akhir tempat aturan saat ini berlaku.

        Configurations

        Rule Type

        Ya

        Tipe aturan. Pilih Blacklist Rule.

        Current Mode

        Tidak

        Mode aturan. Tetapkan nilainya ke Protection Mode. PolarProxy memblokir pernyataan SQL yang sesuai dengan aturan blacklist.

        Database Account Name

        Tidak

        Nama akun database tempat aturan berlaku. Nilai valid:

        • All Accounts: Aturan berlaku untuk semua akun database dalam kluster. Bidang di sebelah kanan opsi Semua Akun dapat dibiarkan kosong.

        • Include: Aturan hanya berlaku untuk akun database tertentu. Anda harus memasukkan setidaknya satu nama akun database di bidang di sebelah kanan opsi Termasuk. Pisahkan beberapa nama akun database dengan koma (,).

        • Exclude: Aturan berlaku untuk semua akun database dalam kluster kecuali akun database tertentu. Anda harus memasukkan setidaknya satu nama akun database di bidang di sebelah kanan opsi Kecualikan. Pisahkan beberapa nama akun database dengan koma (,).

        Catatan

        Nama akun database harus dalam salah satu format berikut:

        • Username. Contoh: user.

        • Username@Alamat IP. Contoh: user@10.0.0.0.

        Block SQLs With Asterisks (*)

        Tidak

        Menentukan apakah akan memblokir pernyataan SQL yang mengandung asterisk (*). Nilai valid:

        • Enable: memblokir pernyataan SQL yang mengandung asterisk (*).

        • Disable: tidak memblokir pernyataan SQL yang mengandung asterisk (*).

        Block SQLs of Specific Types

        Tidak

        Menentukan apakah akan memblokir pernyataan SQL jenis tertentu. Nilai valid:

        • Enable: memblokir pernyataan SQL jenis tertentu. Jika Anda menetapkan parameter Blokir SQL Jenis Tertentu ke Enable, pilih setidaknya satu jenis pernyataan SQL. Jenis pernyataan SQL berikut didukung:

          • CREATE

          • DROP

          • ALTER

          • TRUNCATE

          • RENAME

          • INSERT

          • UPDATE

          • SELECT

          • DELETE

        • Disable: tidak memblokir pernyataan SQL jenis tertentu.

        Block SQLs Without WHERE

        Tidak

        Menentukan apakah akan memblokir pernyataan SQL yang tidak mengandung klausa WHERE. Nilai valid:

        • Enable: memblokir pernyataan SQL jenis tertentu yang tidak mengandung klausa WHERE. Jika Anda menetapkan parameter Blokir SQL Tanpa WHERE ke Enable, pilih setidaknya satu jenis pernyataan SQL. Jenis pernyataan SQL berikut didukung:

          • UPDATE

          • SELECT

          • DELETE

        • Disable: tidak memblokir pernyataan SQL jenis tertentu yang tidak mengandung klausa WHERE.

        Catatan

        Parameter ini hanya valid untuk pernyataan SELECT, UPDATE, dan DELETE yang mengandung setidaknya satu nama tabel. PolarProxy tidak memblokir pernyataan SELECT 1;.

        Block SQLs With Specific Columns

        Tidak

        Menentukan apakah akan memblokir pernyataan SQL yang mengandung nama kolom tertentu. Nilai valid:

        • Enable: memblokir pernyataan SQL yang mengandung nama kolom tertentu. Jika Anda menetapkan parameter Blokir SQL dengan Kolom Tertentu ke Enable, opsi berikut didukung:

          • All: Aturan berlaku untuk semua nama kolom dalam kluster. Bidang di sebelah kanan opsi Semua dapat dibiarkan kosong.

          • Include: Aturan hanya berlaku untuk nama kolom tertentu. Anda harus memasukkan setidaknya satu nama kolom database di bidang di sebelah kanan opsi Termasuk. Pisahkan beberapa nama kolom dengan koma (,).

          • Exclude: Aturan berlaku untuk semua nama kolom dalam kluster kecuali nama kolom tertentu. Anda harus memasukkan setidaknya satu nama kolom di bidang di sebelah kanan opsi Kecualikan. Pisahkan beberapa nama kolom dengan koma (,).

        • Disable: tidak memblokir pernyataan SQL yang mengandung nama kolom tertentu.

        Block SQLs With Specific Functions

        Tidak

        Menentukan apakah akan memblokir pernyataan SQL yang mengandung fungsi tertentu. Nilai valid:

        • Enable: memblokir pernyataan SQL yang mengandung fungsi tertentu. Jika Anda menetapkan parameter Blokir SQL dengan Fungsi Tertentu ke Enable, opsi berikut didukung:

          • All: Aturan berlaku untuk semua fungsi dalam kluster. Bidang di sebelah kanan opsi Semua dapat dibiarkan kosong.

          • Include: Aturan hanya berlaku untuk fungsi tertentu. Anda harus memasukkan setidaknya satu fungsi di bidang di sebelah kanan opsi Termasuk. Pisahkan beberapa fungsi dengan koma (,).

          • Exclude: Aturan berlaku untuk semua fungsi dalam kluster kecuali fungsi tertentu. Anda harus memasukkan setidaknya satu fungsi di bidang di sebelah kanan opsi Kecualikan. Pisahkan beberapa fungsi dengan koma (,).

        • Disable: tidak memblokir pernyataan SQL yang mengandung fungsi tertentu.

        Block SQLs With Specific Columns and Specific Functions

        Tidak

        Menentukan apakah akan memblokir pernyataan SQL yang mengandung fungsi tertentu dan nama kolom tertentu. Nilai valid:

        • Enable: memblokir pernyataan SQL yang mengandung fungsi tertentu dan nama kolom tertentu. Jika Anda menetapkan parameter Blokir SQL dengan Kolom Tertentu dan Fungsi Tertentu ke Enable, Anda harus memasukkan setidaknya satu function dan satu column name di bidang di sebelah kanan.

          • Jika Anda menetapkan parameter Function Name ke Include dan parameter Column Name ke Include, aturan berlaku untuk pernyataan SQL yang mengandung fungsi tertentu dan nama kolom tertentu.

          • Jika Anda menetapkan parameter Function Name ke Include dan parameter Column Name ke Exclude, aturan berlaku untuk pernyataan SQL yang mengandung fungsi tertentu dan tidak mengandung nama kolom tertentu.

          • Jika Anda menetapkan parameter Function Name ke Exclude dan parameter Column Name ke Include, aturan berlaku untuk pernyataan SQL yang tidak mengandung fungsi tertentu dan mengandung nama kolom tertentu.

          • Jika Anda mengatur parameter Function Name ke Exclude dan parameter Column Name ke Exclude, aturan tersebut berlaku untuk pernyataan SQL yang tidak mencakup fungsi tertentu atau nama kolom tertentu.

        • Disable: tidak memblokir pernyataan SQL yang mengandung fungsi tertentu dan nama kolom tertentu.

      2. Klik OK.

    • Custom parameterized SQL mode

      1. Jika Anda memilih custom parameterized SQL mode, konfigurasikan parameter yang diperlukan. Untuk informasi lebih lanjut tentang parameter, lihat Tambahkan Aturan Blacklist.

        Catatan

        Jika Anda memilih custom parameterized SQL mode, Anda dapat menonaktifkan semua aturan blacklist dalam parameter Configurations yang dijelaskan di Tabel 1.

      2. Klik OK.

      3. Sambungkan ke titik akhir database yang ditentukan menggunakan database account name yang telah didefinisikan sebelumnya. Anda dapat menentukan pernyataan SQL yang ingin diblokir dengan menambahkan perintah hint berikut sebelum pernyataan SQL: hint(/* store_to_blacklist */). Sebagai contoh, untuk memblokir pernyataan select id from sqlblack_test where id = 1;, jalankan perintah berikut:

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

        Template Berparameter:

        select id from sqlblack_test where id = ?

        Tanda tanya (?) dalam template menunjukkan nilai apa pun.

        Tunggu selama 5 detik. Ketika Anda menggunakan akun untuk mengeksekusi pernyataan SQL yang sesuai dengan template berparameter di kluster yang ditentukan, PolarProxy memblokir pernyataan tersebut. Informasi berikut ditampilkan setelah pernyataan SQL diblokir:

        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 in blacklist bl_test.

        bl_test adalah nama tabel aturan blacklist.

      Catatan
      • Jika Anda menggunakan baris perintah MySQL, Anda harus menambahkan opsi -c. Jika tidak, perintah hint tidak akan berlaku.

      • Pernyataan SQL berparameter mulai berlaku setelah 5 detik.

    • Custom SQL mode

      1. Jika Anda memilih custom SQL mode, konfigurasikan parameter yang diperlukan. Untuk informasi lebih lanjut tentang parameter, lihat Tambahkan Aturan Blacklist.

        Catatan

        Jika Anda memilih custom SQL mode, Anda dapat menonaktifkan semua opsi dalam parameter Configurations yang dijelaskan di Tabel 1.

      2. Klik OK.

      3. Sambungkan ke titik akhir database yang ditentukan menggunakan database account name yang telah didefinisikan sebelumnya. Anda dapat menentukan pernyataan SQL yang ingin diblokir dengan menambahkan perintah hint berikut sebelum pernyataan SQL: hint(/* orginal_store_to_blacklist */). Sebagai contoh, untuk memblokir pernyataan update t set k = 2 where id = 2;, jalankan perintah berikut:

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

        Tunggu selama 5 detik. Ketika Anda menggunakan akun untuk mengeksekusi pernyataan update t set k = 2 where id = 2; pada kluster yang ditentukan, PolarProxy memblokir pernyataan tersebut. Namun, pernyataan SQL yang menggunakan parameter lain tidak diblokir. Informasi berikut ditampilkan setelah pernyataan SQL diblokir:

        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 in blacklist bl_test.

        bl_test adalah nama tabel aturan blacklist.

      Catatan
      • Jika Anda menggunakan baris perintah MySQL, Anda harus menambahkan opsi -c. Jika tidak, perintah hint tidak akan berlaku.

      • Pernyataan SQL berparameter mulai berlaku setelah 5 detik.

Aktifkan atau nonaktifkan aturan blacklist

  1. Di pojok kiri atas, pilih wilayah tempat kluster diterapkan.

  2. Temukan kluster dan klik ID-nya.

  3. Di panel navigasi sisi kiri, pilih Settings and Management > Security Management.

  4. Pada tab SQL Firewall, temukan aturan yang ingin dikelola dan aktifkan Enable/Disable.

    Catatan

    Anda dapat memilih beberapa aturan dalam daftar aturan lalu klik Enable atau Disable untuk mengaktifkan atau menonaktifkan aturan secara massal.

  5. Dalam pesan Enable atau Disable, klik OK.

Modifikasi aturan blacklist

  1. Di pojok kiri atas, pilih wilayah tempat kluster diterapkan.

  2. Temukan kluster dan klik ID-nya.

  3. Di panel navigasi sisi kiri, pilih Settings and Management > Security Management.

  4. Pada tab SQL Firewall, temukan aturan yang ingin dikelola lalu klik Modify di kolom Actions. Dalam kotak dialog Modify a Rule, modifikasi parameter berdasarkan kebutuhan bisnis Anda. Untuk informasi lebih lanjut tentang parameter, lihat Tambahkan Aturan Blacklist.

    Catatan

    Saat Anda memodifikasi aturan, Anda tidak dapat memodifikasi rule name.

  5. Klik OK.

Catatan

Anda tidak dapat memodifikasi pernyataan SQL berparameter dalam aturan yang dibuat di custom parameterized SQL mode dan pernyataan SQL dalam aturan yang dibuat di custom SQL mode di konsol PolarDB. Anda harus menghapus pernyataan SQL dari tabel lalu menambahkan pernyataan tersebut lagi.

Hapus aturan blacklist

  1. Di pojok kiri atas, pilih wilayah tempat kluster diterapkan.

  2. Temukan kluster dan klik ID-nya.

  3. Di panel navigasi sisi kiri, pilih Settings and Management > Security Management.

  4. Pada tab SQL Firewall, temukan aturan yang ingin dikelola lalu klik Delete di kolom Actions.

    Catatan

    Anda dapat memilih beberapa aturan dalam daftar aturan lalu klik Delete untuk menghapus aturan secara massal.

  5. Dalam pesan Delete, klik OK.

Batalkan aturan blacklist yang dibuat dalam mode SQL berparameter kustom atau mode SQL kustom

  • Batalkan aturan blacklist yang dibuat dalam custom parameterized SQL mode

    Anda dapat menggunakan salah satu metode berikut untuk membatalkan aturan blacklist yang dibuat dalam custom parameterized SQL mode:

    • Lihat bagian Aktifkan atau Nonaktifkan Aturan Blacklist atau Hapus Aturan Blacklist dari topik ini.

      Catatan

      Jika Anda hanya menonaktifkan aturan blacklist yang dibuat dalam mode SQL berparameter kustom di konsol PolarDB dan tidak menghapus pernyataan SQL berparameter dari tabel proxy_auditing.sql_list, aturan untuk akun yang sama masih berlaku ketika Anda mengaktifkan kembali aturan blacklist di konsol PolarDB.

    • Sambungkan ke node utama dalam kluster menggunakan akun administrator super dan hapus pernyataan SQL dari tabel proxy_auditing.sql_list. Pernyataan SQL berparameter tidak lagi diblokir setelah 5 detik.

      Catatan

      Saat Anda menghapus pernyataan SQL dari tabel proxy_auditing.sql_list, jangan eksekusi pernyataan DROP untuk menghapus tabel.

  • Batalkan aturan blacklist yang dibuat dalam custom SQL mode

    Anda dapat menggunakan salah satu metode berikut untuk membatalkan aturan blacklist yang dibuat dalam custom SQL mode:

    • Lihat bagian Aktifkan atau Nonaktifkan Aturan Blacklist atau Hapus Aturan Blacklist dari topik ini.

      Catatan

      Jika Anda hanya menonaktifkan aturan blacklist yang dibuat dalam mode SQL berparameter kustom di konsol PolarDB tanpa menghapus pernyataan SQL berparameter dari tabel proxy_auditing.org_sql_list, aturan untuk akun yang sama tetap berlaku saat Anda mengaktifkan kembali aturan blacklist di konsol PolarDB.

    • Sambungkan ke node utama dalam kluster menggunakan akun administrator super dan hapus pernyataan SQL dari tabel proxy_auditing.org_sql_list. Pernyataan SQL tidak lagi diblokir setelah 5 detik.

      Catatan

      Saat Anda menghapus pernyataan SQL dari tabel proxy_auditing.org_sql_list, jangan eksekusi pernyataan DROP untuk menghapus tabel.