日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

SQL防火墻是數(shù)據(jù)庫層面的防火墻功能,可以防止惡意SQL注入。可以用來學(xué)習(xí)一些定義好的SQL規(guī)則,并將這些規(guī)則儲(chǔ)存在數(shù)據(jù)庫中作為白名單,學(xué)習(xí)完成后,可以限制用戶執(zhí)行這些定義規(guī)則之外的風(fēng)險(xiǎn)操作。

注意事項(xiàng)

sql_firewall插件需要使用共享內(nèi)存,如果集群啟動(dòng)時(shí)沒有加載sql_firewall庫(默認(rèn)不加載),則會(huì)創(chuàng)建插件失敗。如果需要安裝sql_firewall插件,請?jiān)?span data-tag="parmname" id="parmname-g31-zk0-ber" class="parmname">shared_preload_libraries參數(shù)中添加sql_firewall

學(xué)習(xí)模式、預(yù)警模式與防火墻模式

流程圖

SQL防火墻支持如下三種模式:

  • 學(xué)習(xí)模式:防火墻記錄用戶執(zhí)行的SQL,并添加到常用SQL白名單。

  • 預(yù)警模式:防火墻對用戶將執(zhí)行的SQL進(jìn)行判斷,如果SQL不在白名單中,仍然會(huì)執(zhí)行該SQL,但是會(huì)告警用戶該SQL不在白名單中。

  • 防火墻模式:防火墻對用戶將執(zhí)行的SQL進(jìn)行判斷,如果SQL不在白名單中,防火墻會(huì)拒絕執(zhí)行該SQL并返回錯(cuò)誤提示。

SQL防火墻的使用步驟

  1. 打開防火墻的學(xué)習(xí)模式,讓防火墻記錄用戶執(zhí)行的SQL,并加入白名單。這個(gè)過程建議持續(xù)一段較長的時(shí)間,盡量讓防火墻學(xué)習(xí)到所有可能執(zhí)行的SQL。

  2. 切換防火墻為預(yù)警模式,這個(gè)過程防火墻會(huì)對用戶的一些不在白名單的SQL進(jìn)行告警,用戶結(jié)合自己的業(yè)務(wù)判斷是否為風(fēng)險(xiǎn)SQL,如果這些SQL確實(shí)是用戶需要的業(yè)務(wù)語句,則記錄這些SQL,之后打開學(xué)習(xí)模式進(jìn)行二次學(xué)習(xí)。

  3. 經(jīng)過前兩步,用戶常用SQL已經(jīng)被記錄完畢,打開防火墻模式,此時(shí)不在白名單的SQL均會(huì)被拒絕執(zhí)行。

操作說明

  • 創(chuàng)建插件

    create extension sql_firewall;
    說明
    • sql_firewall插件需要使用共享內(nèi)存,因此您在集群啟動(dòng)時(shí)沒有加載sql_firewall庫(默認(rèn)不加載),則會(huì)創(chuàng)建插件失敗。

    • 如果想正常使用插件功能,您需要在postgresql.conf文件中添加shared_preload_libraries = 'sql_firewall'語句,并重啟集群。

  • 刪除插件

    drop extension sql_firewall;
  • 切換模式

    在控制臺(tái)找到sql_firewall.firewall參數(shù),修改參數(shù)值并重啟集群。

    sql_firewall.firewall取值如下:

    • disable:關(guān)閉SQL防火墻。

    • learning:學(xué)習(xí)模式。

    • permissive:預(yù)警模式。

    • enforcing:防火墻模式。

  • 功能函數(shù)

    • sql_firewall_reset()

      清空白名單。該函數(shù)只有在防火墻關(guān)閉模式下,polar_superuser權(quán)限的用戶可執(zhí)行該函數(shù)。

    • sql_firewall_stat_reset()

      清空統(tǒng)計(jì)信息。該函數(shù)只有在防火墻關(guān)閉模式下,polar_superuser權(quán)限的用戶可執(zhí)行該函數(shù)。

  • 視圖函數(shù)

    • sql_firewall.sql_firewall_statements

      展示目前數(shù)據(jù)庫中所有的白名單及其被調(diào)用的次數(shù)。

       select * from sql_firewall.sql_firewall_statements;

      結(jié)果如下:

           userid |  queryid   |              query              | calls
          --------+------------+---------------------------------+-------
               10 | 3294787656 | select * from k1 where uid = ?; |     4
          (1 row)
    • sql_firewall.sql_firewall_stat

      展示預(yù)警模式下的警告數(shù)量(sql_warning)和防火墻模式下的錯(cuò)誤數(shù)量(sql_error)。

      select * from sql_firewall.sql_firewall_stat;
           sql_warning | sql_error
          -------------+-----------
                     2 |         1
          (1 row)

示例

--預(yù)警模式

    select * from sql_firewall.sql_firewall_statements;
    WARNING:  Prohibited SQL statement
     userid |  queryid   |              query              | calls
    --------+------------+---------------------------------+-------
         10 | 3294787656 | select * from k1 where uid = 1; |     1
    (1 row)

     select * from k1 where uid = 1;
     uid |    uname
    -----+-------------
       1 | Park Gyu-ri
    (1 row)

     select * from k1 where uid = 3;
     uid |   uname
    -----+-----------
       3 | Goo Ha-ra
    (1 row)

     select * from k1 where uid = 3 or 1 = 1;
    WARNING:  Prohibited SQL statement
     uid |     uname
    -----+----------------
       1 | Park Gyu-ri
       2 | Nicole Jung
       3 | Goo Ha-ra
       4 | Han Seung-yeon
       5 | Kang Ji-young
    (5 rows)

--防火墻模式

    select * from k1 where uid = 3;
     uid |   uname
    -----+-----------
       3 | Goo Ha-ra
    (1 row)

     select * from k1 where uid = 3 or 1 = 1;
    ERROR:  Prohibited SQL statement