MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Маскиране на PII в MongoDB и други NoSQL DB чрез…

Забележка на редакторите:Този пример демонстрира нашия най-ранен, най-малко директен (въпреки че все още е налице) метод за използване на IRI FieldShield за защита на данните, намерени в таблиците на MongoDB. Както ще прочетете, помощната програма за експортиране на MongoDB в този случай извлича данни и създава CSV файл, който FieldShield маскира външно, преди да зареди новите защитени данни обратно в MongoDB. Можете да използвате същия подход за данни в други NoSQL бази данни като Cassandra и ElasticSearch.

IRI също така предлага по-директни методи за преместване на данни между колекциите на MongoDB и IRI маскиращи двигатели на данни като FieldShield или Voracity. Статия с инструкции за директно маскиране на данни на структурирани данни MongoDB чрез ODBC от2016 г. тук и чрез собствения драйвер на MongoDB, поддържан в CoSort v10 (захранващ FieldShield и Voracity) през2018 г. е тук. Последният (четвърти метод) метод – който може да намира и маскира PII както в структурирани, така и в неструктурирани колекции MongoDB, използвайки IRI DarkShield — в GUI от 2019 е тук и в API от 2021 е тук.

MongoDB е мощна NoSQL база данни, която може да съхранява големи количества данни в пакети, наречени колекции (подобно на таблици в релационни бази данни). Въпреки че се мащабира хоризонтално (добавете мощност към базата данни чрез добавяне на машини), MongoDB няма вътрешен начин да маскира данните, след като бъдат въведени, освен ръчно актуализиране на всеки запис.

Примерът по-долу защита стойностите на MongoDB външно. Обяснявам как да експортирате колекция в CSV файл, да използвате IRI FieldShield, за да маскирате поле в този файл и да импортирате този файл  обратно в Mongo, така че колекцията да бъде защитена по подходящ начин. Имайте предвид, че можете да маскирате произволен брой полета по 14 различни начина, като използвате FieldShield.

Също така е възможно автоматично да се откриват и маскират данни в множество структурирани, полуструктурирани, неструктурирани източници на базата на централно дефинирани класове данни, които други статии в този блог (като тази) описват подробно. Този пример обаче показва само аспектите на маскирането въз основа на експортирани eollections.

Данни преди маскиране

Ето записите в изходната таблица, показани с MongoVUE.


Експортиране на данните от таблицата

Използвайте помощната програма за експортиране на MongoDB (mongoexport), за да изпълните командата:

--db <Database Name> --collection <Collection Name> --csv --fields <field1,field2,...> --out <Output Path>


Използване на графичния интерфейс на FieldShield за създаване на задачата за маскиране на данни

  • Отворете IRI Workbench и стартирайте съветника за създаване на ново задание за защита (маскиране) за FieldShield.
  • Изберете каквото и да е име, което искате да дадете на работата, и щракнете върху следващия.
  • На екрана Източници на данни щракнете върху Добавяне на източник на данни и намерете създадения от вас CSV файл.
  • Щракнете върху Редактиране на опциите на източника и под Опции променете типа формат на CSV и щракнете върху OK.
  • Щракнете върху Откриване на метаданни и следвайте съветника. Той трябва да открие разделителя като „,“ и да може да генерира данните за полето. Най-вероятно ще избере ASCII за типа данни. За да промените това, щракнете върху типа данни на полето, който искате да промените, и след това изберете типа данни, който искате да използвате. След като сте доволни от типовете си данни, щракнете върху Край .

  • Щракнете върху Напред за да стигнете до екрана „Цели за данни“ и кликнете върху Добавяне на цел за данни . След това наименувайте CSV файл, който искате да създадете, и щракнете върху OK .
  • Щракнете върху Оформление на целевото поле за да изведете екрана, където ще приложите маската:

  • Долната таблица ще ви покаже всички полета, които ще бъдат във вашия целеви файл. Изберете името на полето, което искате да маскирате, щракнете върху стрелката на менюто „Защита на полето“ и изберете желаната функция за маскиране от падащото меню.
  • Попълнете параметрите на диалоговия прозорец, щракнете върху OK (два пъти) и Край   за да завършите съветника за работа.
  • Вашата работа FieldShield трябва да бъде генерирана за вас:

Прегледайте и ако е необходимо, променете и запазете отново вашата задача за маскиране на данни. Стартирайте го от графичния интерфейс, командния ред или от приложението, за да генерирате файла, който ще качите обратно в MongoDB.


Импортиране на маскираната таблица

Използвайте помощната програма за импортиране на MongoDB (mongoimport), за да изпълните командите:

--db <Database Name> --collection <Collection Name> --type csv --fields <field1,field2,...> --upsert --upsertFields <Field to match to old database*> --file <File Path of the file to import (The file created by the Mask Script)>

*За да импортирате всичко обратно в старата колекция, трябва да й кажете кои от полетата въвеждате, за да потърсите спрямо съществуващите записи. Пример би бил имейл; ще съпостави всички импортиращи записи със съществуващия им имейл и ще актуализира записа.


Данни след маскиране

По-долу са записите в целевата таблица; показано с MongoVUE. Имайте предвид, че само номерата на кредитни карти бяха редактирани в процеса на FieldShield; други полета биха могли да бъдат защитени с подобни или различни функции едновременно.

В допълнение към относително лесното дефиниране и изпълнение на задания FieldShield, има и други предимства да го използвате с Mongo, включително:

  • скорост в обема — както IRI, така и архитектурите за производителност на Mongo са проектирани да мащабират линейно
  • междуплатформена съвместимост — изберете от тези поддържани източници
  • едновременно интегриране на данни, миграция, репликация, обединяване и възможности за отчитане в един и същ CoSort (програма SortCL, родител на FieldShield) задание и вход/изход

Свържете се с  ако имате въпроси относно този процес или коментирайте по-долу.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да премахна документи с помощта на Node.js Mongoose?

  2. Mongodb:Заявете json-обект, вложен в масив

  3. MongoDB $isoWeekYear

  4. Процент на условията ИЛИ, съответстващи в mongodb

  5. NoSQL (MongoDB) срещу Lucene (или Solr) като ваша база данни