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

文檔

數(shù)據(jù)脫敏

Hologres為您提供數(shù)據(jù)脫敏功能,支持按照列級(jí)別設(shè)置脫敏。啟用該功能后,如果您查詢的數(shù)據(jù)涉及敏感信息,則在展示結(jié)果中,該部分?jǐn)?shù)據(jù)會(huì)被脫敏展示,提高了對(duì)敏感及私密數(shù)據(jù)的保護(hù)。本文為您介紹Hologres如何開啟、查詢及刪除數(shù)據(jù)脫敏功能。

背景信息

隨著大數(shù)據(jù)時(shí)代的來(lái)臨,大數(shù)據(jù)、云計(jì)算和人工智能等新技術(shù)應(yīng)用不斷深化,為數(shù)據(jù)的深度挖掘及分析提供了強(qiáng)有力的支撐,大數(shù)據(jù)中蘊(yùn)含的巨大價(jià)值被逐步挖掘出來(lái)。與此同時(shí)也帶來(lái)了敏感及私密信息保護(hù)方面的棘手難題。

Hologres提供的數(shù)據(jù)脫敏功能,實(shí)現(xiàn)了數(shù)據(jù)在高效共享、挖掘及分析的同時(shí),使得敏感及隱私信息不被泄露,提高了對(duì)敏感及私密數(shù)據(jù)的保護(hù)。

使用限制

  • 出于安全考慮,Hologres暫不支持從設(shè)置了脫敏規(guī)則的表和列向未設(shè)置脫敏規(guī)則的表和列導(dǎo)入數(shù)據(jù),相關(guān)報(bào)錯(cuò)信息如下。

    錯(cuò)誤原因:ERROR: The insert table has not set SECURITY LABEL
  • 暫不支持針對(duì)設(shè)置了脫敏規(guī)則的表進(jìn)行UNION和DISTINCT查詢,相關(guān)報(bào)錯(cuò)信息如下。

    錯(cuò)誤原因:ERROR: UNION is not support on security item
  • 數(shù)據(jù)脫敏會(huì)一定程度的影響查詢性能,影響程度和脫敏方式、數(shù)據(jù)量都有關(guān),性能有10%~20%的下降,極端場(chǎng)景可能存在數(shù)倍性能下降。

使用數(shù)據(jù)脫敏

Hologres支持對(duì)目標(biāo)列或目標(biāo)用戶設(shè)置數(shù)據(jù)脫敏。使用數(shù)據(jù)脫敏前,您需登錄目標(biāo)數(shù)據(jù)庫(kù)開啟脫敏功能。完成后可配置對(duì)應(yīng)的脫敏規(guī)則,針對(duì)某一列或某個(gè)用戶設(shè)置脫敏。具體操作步驟如下。

  1. 為目標(biāo)數(shù)據(jù)庫(kù)開啟數(shù)據(jù)脫敏。

    數(shù)據(jù)脫敏功能默認(rèn)不開啟,需要Superuser登錄至目標(biāo)數(shù)據(jù)庫(kù)開啟該功能,開啟命令及相關(guān)參數(shù)說(shuō)明如下。

    • 命令:

      CREATE EXTENSION IF NOT EXISTS hg_anon; --創(chuàng)建hg_anon擴(kuò)展函數(shù)。
      ALTER DATABASE <db_name> SET hg_anon_enable = on; --為指定數(shù)據(jù)庫(kù)開啟數(shù)據(jù)脫敏功能,默認(rèn)為off。
    • 示例:

      CREATE EXTENSION IF NOT EXISTS hg_anon;--創(chuàng)建hg_anon擴(kuò)展函數(shù)。
      ALTER DATABASE test SET hg_anon_enable = on;--為數(shù)據(jù)庫(kù)test開啟數(shù)據(jù)脫敏功能。
    • 參數(shù)說(shuō)明:

      參數(shù)

      參數(shù)的相關(guān)描述

      hg_anon

      hg_anon是Hologres內(nèi)部封裝的擴(kuò)展函數(shù),您需要調(diào)用該擴(kuò)展函數(shù)才能開啟數(shù)據(jù)脫敏功能。

      <db_name>

      需要開啟數(shù)據(jù)脫敏功能的數(shù)據(jù)庫(kù)名稱。使用時(shí)需要替換<db_name>為實(shí)際數(shù)據(jù)庫(kù)名稱。

      hg_anon_enable

      選擇開啟或關(guān)閉數(shù)據(jù)脫敏功能,取值如下:

      • on,開啟數(shù)據(jù)脫敏。

      • off,關(guān)閉數(shù)據(jù)脫敏。

      默認(rèn)該參數(shù)設(shè)置為off

  2. 設(shè)置脫敏列。

    可由Superuser或表Owner對(duì)目標(biāo)列進(jìn)行脫敏,具體命令、示例、參數(shù)說(shuō)明如下。

    • 命令:

      說(shuō)明

      對(duì)多列數(shù)據(jù)進(jìn)行脫敏時(shí),需要多次執(zhí)行該語(yǔ)句。

      SECURITY LABEL FOR hg_anon ON COLUMN <tablename>.<col_name> IS <label_name>;
    • 示例:對(duì)holotest表的ID列按照名稱脫敏。

      SECURITY LABEL FOR hg_anon ON COLUMN holotest.id IS 'name';
    • 參數(shù)說(shuō)明:

      參數(shù)

      描述

      hg_anon

      hg_anon是Hologres內(nèi)部封裝的擴(kuò)展函數(shù),您需要調(diào)用該擴(kuò)展函數(shù)才能開啟數(shù)據(jù)脫敏功能。

      <tablename>

      需要脫敏的列所在的表名稱。使用時(shí)需要替換<tablename>為實(shí)際表名稱。

      <col_name>

      需要脫敏的列名稱。使用時(shí)需要替換<col_name>為實(shí)際列名稱。

      label_name

      系統(tǒng)預(yù)設(shè)的脫敏函數(shù),您可以使用show hg_anon_labels;SQL查看當(dāng)前數(shù)據(jù)庫(kù)設(shè)置的label_name

      從HologresV1.1版本開始,默認(rèn)的label_name如下。

      lable_name

      說(shuō)明

      示例

      name

      姓名脫敏。

      • 脫敏前:李華;脫敏后:*華。

      • 脫敏前:王小強(qiáng);脫敏后:**強(qiáng)。

      email

      郵箱地址脫敏。

      脫敏前:lihuang@alibaba.com;脫敏后:lih***@alibaba.com

      ip

      IP地址脫敏。

      脫敏前:192.0.2.1;脫敏后:192.*.*.*。

      id

      身份證號(hào)碼脫敏。

      脫敏前:110345188812011234;脫敏后:1****************4

      phone

      電話號(hào)碼脫敏。

      脫敏前:13900001234;脫敏后:*********34。

      bank_id

      銀行卡、信用卡賬號(hào)脫敏。

      脫敏前:2349867902834701928;脫敏后:***************1928。

      hash

      使用MD5算法進(jìn)行脫敏。

      脫敏前:浙江省杭州市文一西路;脫敏后:dbf894b409d4a2ef17dfd9c7fdcafcd8。

      first_mask

      定義了一個(gè)first_mask的規(guī)則,只顯示第一個(gè)字符。

      脫敏前:123456789;脫敏后:1********。

    • 脫敏結(jié)果示例:結(jié)果示例

    • 其他相關(guān)命令

      • 刪除已經(jīng)設(shè)置的脫敏

        SECURITY LABEL FOR hg_anon ON COLUMN test_hg_anon_demo.name is NULL;
      • 查看設(shè)置的脫敏列

        SELECT c.relname, a.attname, provider, label
        FROM pg_seclabel s 
            INNER JOIN pg_catalog.pg_class c ON s.classoid = c.tableoid AND s.objoid = c.oid
            INNER JOIN pg_catalog.pg_attribute a ON s.objoid = a.attrelid
        WHERE a.attnum = objsubid;

高級(jí)技巧

  • 對(duì)不同用戶設(shè)置脫敏

    默認(rèn)情況下所有用戶都會(huì)脫敏,可以單獨(dú)設(shè)置某些用戶不脫敏。

    • 命令格式如下

       SECURITY LABEL FOR hg_anon ON ROLE user_name IS '[label_name|all]:[masked|unmasked]';

      參數(shù)

      說(shuō)明

      user_name

      賬號(hào)ID。請(qǐng)通過(guò)用戶信息頁(yè)面獲取。

      label_name

      系統(tǒng)預(yù)設(shè)的脫敏函數(shù),您可以使用show hg_anon_labels;SQL查看當(dāng)前數(shù)據(jù)庫(kù)設(shè)置的label_name。

      masked

      使用數(shù)據(jù)脫敏。

      unmasked

      不使用數(shù)據(jù)脫敏。

    • 使用示例

      • 對(duì)賬號(hào)ID為1365xxxxxxxxxxxx的用戶不脫敏的語(yǔ)句如下。

        SECURITY LABEL FOR hg_anon ON ROLE "1365xxxxxxxxxxxx" IS 'all:unmasked';
      • 對(duì)賬號(hào)ID為1365xxxxxxxxxxxx的用戶針對(duì)phone標(biāo)簽的列設(shè)置為不脫敏的語(yǔ)句如下。

        SECURITY LABEL FOR hg_anon ON ROLE "1365xxxxxxxxxxxx" IS 'phone:unmasked';
    • 相關(guān)命令

      • 查看對(duì)用戶設(shè)置的脫敏情況

        SELECT usename, label FROM pg_shseclabel s INNER JOIN pg_catalog.pg_user u ON s.objoid = u.usesysid;
      • 刪除對(duì)用戶設(shè)置的脫敏

        SECURITY LABEL FOR hg_anon ON ROLE "1365xxxxxxxxxxxx" IS NULL;
  • 自定義脫敏規(guī)則

    如果默認(rèn)的label_name無(wú)法滿足需求,您可以通過(guò)修改GUC的hg_anon_labels參數(shù)自定義脫敏規(guī)則。

    • 命令

      ALTER DATABASE <db_name> SET hg_anon_labels = '[
        {"label": <label_name1>, "method", <method1>},
        {"label": <label_name2>, "method", <method2>},
        ... 
      ]'; --label_name是您自定義的名稱,method是Hologres內(nèi)置的一些方法。
      說(shuō)明

      執(zhí)行ALTER DATABASE命令后,當(dāng)前鏈接會(huì)不生效,需要重開一個(gè)連接。您可使用如下命令查看設(shè)置是否生效。

      SHOW hg_anon_enable;
    • 示例

      ALTER DATABASE test_db SET hg_anon_labels = '[
      {"label":"ip", "method":{"desensType":"mask", "type":"ip"}},
      {"label":"email", "method":{"desensType":"mask", "type":"email"}},
      {"label":"name", "method":{"desensType":"mask", "type":"name"}},
      {"label":"first_mask", "method":{"desensType":"mask", "type":"user_define", "before":1, "after":0}},
      {"label":"hash", "method":{"desensType":"hash", "type":"md5", "salt":""}}]';
    • 參數(shù)說(shuō)明:

      脫敏項(xiàng)

      脫敏內(nèi)容描述

      脫敏結(jié)果示例

      {"desensType":"mask", "type":"ip"}

      IP地址脫敏。

      192.*.*.*

      {"desensType":"mask", "type":"email"}

      郵箱地址脫敏。

      abc***@example.net

      {"desensType":"mask", "type":"name"}

      名稱脫敏。

      *五

      {"desensType":"hash", "type":"md5", "salt":""}

      Hash脫敏。

      e086aa137fa19f67d27b39d0eca186103228f322c9c98a125554a24f875f0f7e

      {"label":"first_mask", "method":{"desensType":"mask", "type":"user_define", "before":1, "after":0}}{"label":"last_mask", "method":{"desensType":"mask", "type":"user_define", "before":0, "after":1}}

      自定義內(nèi)容脫敏。

      無(wú)

使用示例

使用Hologres數(shù)據(jù)脫敏功能完整的使用示例如下。

  1. 創(chuàng)建數(shù)據(jù)庫(kù)

    使用如下命令語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)。

    CREATE DATABASE hg_anon_demo;
  2. 創(chuàng)建樣例數(shù)據(jù)表

    切換到創(chuàng)建的數(shù)據(jù)庫(kù),使用如下命令語(yǔ)句創(chuàng)建樣例數(shù)據(jù)表。

    DROP TABLE IF EXISTS personal_basic_information;
    
    CREATE TABLE personal_basic_information
    (
        name TEXT
        ,email TEXT
        ,ip TEXT
        ,id TEXT
        ,phone TEXT
        ,bank_id TEXT
    )
    ;
  3. 插入樣例數(shù)據(jù)

    使用如下命令語(yǔ)句,在personal_basic_information表中插入樣例數(shù)據(jù)。

    INSERT INTO personal_basic_information(name,email,ip,id,phone,bank_id) VALUES
    ('Zhang San','zhangsan@alibaba.com','127.0.0.1','142732199102290022','13900001234','4514610803067088'),
    ('Li Si','lisi@alibaba.com','127.0.0.1','510622198402308000','13900001111','6252470010027800'),
    ('Li Xiaoyao','lixiaoyao@alibaba.com','172.21.4.234','511025188812271696','13900002222','6252470010027800');
  4. 查看數(shù)據(jù)

    查看數(shù)據(jù)脫敏前的數(shù)據(jù)。

    SELECT * FROM personal_basic_information;
  5. 設(shè)置脫敏規(guī)則

    使用如下命令語(yǔ)句為數(shù)據(jù)設(shè)置脫敏規(guī)則。

    --創(chuàng)建hg_anon擴(kuò)展函數(shù)。
    CREATE EXTENSION IF NOT EXISTS hg_anon;
    
    --為數(shù)據(jù)庫(kù)hg_anon_demo開啟數(shù)據(jù)脫敏功能。
    ALTER DATABASE hg_anon_demo SET hg_anon_enable = on;
    
    --設(shè)置每一列的脫敏規(guī)則
    SECURITY LABEL FOR hg_anon ON COLUMN personal_basic_information.name IS 'name';
    SECURITY LABEL FOR hg_anon ON COLUMN personal_basic_information.id IS 'id';
    SECURITY LABEL FOR hg_anon ON COLUMN personal_basic_information.phone IS 'phone';
    SECURITY LABEL FOR hg_anon ON COLUMN personal_basic_information.email IS 'email';
    SECURITY LABEL FOR hg_anon ON COLUMN personal_basic_information.bank_id IS 'bank_id';
    SECURITY LABEL FOR hg_anon ON COLUMN personal_basic_information.ip IS 'ip';
  6. 查看數(shù)據(jù)

    請(qǐng)斷開數(shù)據(jù)庫(kù),重新登錄數(shù)據(jù)庫(kù)使用如下命令查看數(shù)據(jù)脫敏后的數(shù)據(jù)。

    SELECT * FROM personal_basic_information;

    脫敏后的數(shù)據(jù)如下所示。脫敏后數(shù)據(jù)

    • 如果對(duì)賬號(hào)ID為1365xxxxxxxxxxxx的用戶設(shè)置不脫敏,SQL如下。

      SECURITY LABEL FOR hg_anon ON ROLE "1365xxxxxxxxxxxx" IS 'all:unmasked';

      查詢數(shù)據(jù)結(jié)果如下。設(shè)置不脫敏

    • 若對(duì)賬號(hào)ID為1365xxxxxxxxxxxx的用戶設(shè)置對(duì)于phone的標(biāo)簽不脫敏,SQL如下。

      SECURITY LABEL FOR hg_anon ON ROLE "1365xxxxxxxxxxxx" IS 'phone:unmasked';

      查詢結(jié)果如下。phone標(biāo)簽不脫敏

使用數(shù)據(jù)保護(hù)傘進(jìn)行數(shù)據(jù)脫敏

您不僅可以手工設(shè)置脫敏規(guī)則,也可以使用數(shù)據(jù)保護(hù)傘進(jìn)行數(shù)據(jù)脫敏。

  • 使用限制。

    • 僅Hologres V1.1及以上版本支持使用數(shù)據(jù)保護(hù)傘進(jìn)行數(shù)據(jù)脫敏,如果您的實(shí)例是V1.1以下版本,請(qǐng)您使用自助升級(jí)或加入Hologres釘釘交流群反饋,詳情請(qǐng)參見(jiàn)如何獲取更多的在線支持?

    • 為了能夠檢測(cè)出敏感數(shù)據(jù),保護(hù)傘對(duì)于主賬號(hào)設(shè)置不脫敏的規(guī)則。

    • 目前每天9:00:00,保護(hù)傘會(huì)抽樣數(shù)據(jù),識(shí)別敏感數(shù)據(jù),并對(duì)設(shè)置的敏感數(shù)據(jù)列設(shè)置脫敏規(guī)則。

    • 目前Hologres支持使用數(shù)據(jù)保護(hù)傘進(jìn)行數(shù)據(jù)脫敏的地域有:華北2(北京)、華北3(張家口)、華東2(上海)、華東1(杭州)、華南1(深圳)、中國(guó)(香港)、新加坡、德國(guó)(法蘭克福)、馬來(lái)西亞(吉隆坡)、印度尼西亞(雅加達(dá))、美國(guó)(硅谷)。

  • 使用方法。

    • 開啟脫敏功能。

      數(shù)據(jù)脫敏功能默認(rèn)不開啟,需要擁有Superuser權(quán)限的用戶在對(duì)應(yīng)的數(shù)據(jù)庫(kù)中執(zhí)行如下命令開啟該功能。

      --安裝數(shù)據(jù)脫敏EXTENSION
      CREATE EXTENSION IF NOT EXISTS hg_anon;
      --對(duì)指定的數(shù)據(jù)庫(kù)開啟數(shù)據(jù)脫敏功能,默認(rèn)為關(guān)閉狀態(tài) 
      ALTER DATABASE <db_name> SET hg_anon_enable = on;  

      db_name為需要開啟數(shù)據(jù)脫敏功能的數(shù)據(jù)庫(kù)。

      重要
      • hg_anon_enable是一個(gè)GUC,運(yùn)行ALTER DATABASE命令后當(dāng)前連接不生效。

      • 您可以使用如下SQL查看設(shè)置是否生效。

        SHOW hg_anon_enable;
    • 設(shè)置脫敏數(shù)據(jù)庫(kù)。

      1. 登錄數(shù)據(jù)保護(hù)傘控制臺(tái),詳情請(qǐng)參見(jiàn)進(jìn)入數(shù)據(jù)保護(hù)傘

      2. 在左側(cè)導(dǎo)航欄,單擊規(guī)則配置 > 數(shù)據(jù)識(shí)別規(guī)則,進(jìn)入數(shù)據(jù)識(shí)別規(guī)則頁(yè)面。

      3. 敏感數(shù)據(jù)識(shí)別頁(yè)面創(chuàng)建一條數(shù)據(jù)識(shí)別規(guī)則,詳情請(qǐng)參見(jiàn)數(shù)據(jù)識(shí)別規(guī)則

      4. 在左側(cè)導(dǎo)航欄,單擊數(shù)據(jù)脫敏管理,進(jìn)入數(shù)據(jù)脫敏管理頁(yè)面。

      5. 脫敏場(chǎng)景下拉列表中,選擇Hologres展示脫敏(hologres_display_desense_code),并單擊右側(cè)選擇脫敏database

      6. 授權(quán)賬號(hào)脫敏對(duì)話框,從未脫敏database列表選擇需要脫敏的數(shù)據(jù)庫(kù)顯示在脫敏database列表中,單擊我同意授權(quán)數(shù)據(jù)保護(hù)傘對(duì)該database脫敏,單擊確定授權(quán)賬號(hào)脫敏

      7. 數(shù)據(jù)脫敏管理頁(yè)面,單擊右上方的新建脫敏規(guī)則,詳情請(qǐng)參見(jiàn)數(shù)據(jù)脫敏管理,之后系統(tǒng)會(huì)對(duì)您設(shè)置的數(shù)據(jù)庫(kù)進(jìn)行脫敏。

常見(jiàn)問(wèn)題

按照使用示例發(fā)現(xiàn)數(shù)據(jù)未脫敏。

  • 問(wèn)題現(xiàn)象:按照使用示例執(zhí)行后發(fā)現(xiàn)查詢出的數(shù)據(jù)未進(jìn)行脫敏。

  • 可能原因:

    • 對(duì)部分用戶設(shè)置了不脫敏的規(guī)則。

    • 未設(shè)置脫敏標(biāo)簽。

  • 解決方法:

    • 執(zhí)行如下SQL命令檢查是否對(duì)于部分用戶設(shè)置了不脫敏的規(guī)則。

      SELECT
        usename,
        label
      FROM pg_shseclabel s
      INNER JOIN pg_catalog.pg_user u on s.objoid = u.usesysid;

      默認(rèn)情況下該SQL查詢結(jié)果為空,表示對(duì)所有用戶均需要進(jìn)行數(shù)據(jù)脫敏;若不為空,請(qǐng)對(duì)用戶設(shè)置為脫敏,詳情請(qǐng)參見(jiàn)高級(jí)技巧

    • 使用如下SQL,檢查設(shè)置的脫敏標(biāo)簽。

      SHOW hg_anon_labels;

      如果結(jié)果中并未包含ip等標(biāo)簽,請(qǐng)執(zhí)行如下SQL命令設(shè)置脫敏標(biāo)簽。

      ALTER DATABASE compress_test SET hg_anon_labels = '[
      {"label":"ip", "method":{"desensType":"mask", "type":"ip"}},
      {"label":"email", "method":{"desensType":"mask", "type":"email"}},
      {"label":"name", "method":{"desensType":"mask", "type":"name"}},
      {"label":"id", "method":{"desensType":"mask", "type":"id"}},
      {"label":"phone", "method":{"desensType":"mask", "type":"phone"}},
      {"label":"bank_id", "method":{"desensType":"mask", "type":"bank_id"}},
      {"label":"hash", "method":{"desensType":"hash", "type":"md5", "salt":""}},
      {"label":"first_mask", "method":{"desensType":"mask", "type":"user_define", "before":1, "after":0}}
      ]';

      以上標(biāo)簽對(duì)應(yīng)的規(guī)則請(qǐng)參見(jiàn)默認(rèn)的label_name