MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

PII Masking trong MongoDB và các DB NoSQL khác thông qua…

Biên tập viên Lưu ý:Ví dụ này minh họa sớm nhất, ít trực tiếp nhất của chúng tôi (mặc dù vẫn có sẵn) phương pháp sử dụng IRI FieldShield để bảo vệ dữ liệu được tìm thấy trong các bảng MongoDB. Như bạn sẽ đọc, Tiện ích xuất MongoDB trong trường hợp này trích xuất dữ liệu và tạo tệp CSV mà FieldShield che dấu bên ngoài, trước khi tải lại dữ liệu mới được bảo mật vào MongoDB. Bạn có thể sử dụng phương pháp tương tự này cho dữ liệu trong các cơ sở dữ liệu NoSQL khác như Cassandra và ElasticSearch.

IRI cũng cung cấp nhiều phương pháp trực tiếp hơn để di chuyển dữ liệu giữa các bộ sưu tập MongoDB và các công cụ tạo mặt nạ dữ liệu IRI như FieldShield hoặc Voracity. Bài viết hướng dẫn cách tạo mặt nạ dữ liệu trực tiếp cho dữ liệu MongoDB có cấu trúc thông qua ODBC từ 2016 có tại đây và thông qua trình điều khiển gốc của MongoDB được hỗ trợ trong CoSort v10 (cung cấp năng lượng cho FieldShield và Voracity) vào năm 2018. Phương pháp mới nhất (phương pháp thứ tư) - có thể tìm và che giấu PII trong cả bộ sưu tập MongoDB có cấu trúc và không có cấu trúc bằng cách sử dụng IRI DarkShield - trong GUI kể từ 2019 tại đây và trong API kể từ 2021 ở đây.

MongoDB là một cơ sở dữ liệu NoSQL mạnh mẽ có thể lưu trữ một lượng lớn dữ liệu trong các gói được gọi là bộ sưu tập (tương tự như bảng trong cơ sở dữ liệu quan hệ). Mặc dù nó mở rộng theo chiều ngang (thêm sức mạnh cho cơ sở dữ liệu bằng cách thêm máy), MongoDB không có cách nào bên trong để che giấu dữ liệu khi nó đã được nhập, ngoài việc cập nhật từng bản ghi theo cách thủ công.

Ví dụ bên dưới bảo vệ các giá trị MongoDB bên ngoài. Tôi giải thích cách xuất bộ sưu tập sang tệp CSV, sử dụng IRI FieldShield để che dấu một trường trong tệp đó và nhập lại tệp đó vào Mongo để bộ sưu tập được bảo vệ thích hợp. Lưu ý rằng bạn có thể che bất kỳ số lượng trường nào bằng 14 cách khác nhau bằng FieldShield.

Cũng có thể tự động phát hiện và che dấu dữ liệu trong nhiều nguồn có cấu trúc, bán cấu trúc, không có cấu trúc trên cơ sở các lớp dữ liệu được xác định tập trung, mà các bài viết khác trong blog này (như bài báo này) nêu chi tiết. Tuy nhiên, ví dụ này chỉ hiển thị các khía cạnh tạo mặt nạ, dựa trên các bộ sưu tập điện tử đã xuất.

Dữ liệu trước khi tạo mặt nạ

Đây là các bản ghi trong bảng nguồn, được hiển thị bằng MongoVUE.


Xuất Dữ liệu Bảng

Sử dụng tiện ích MongoDB Export (mongoexport) để chạy lệnh:

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


Sử dụng FieldShield GUI để tạo công việc tạo mặt nạ dữ liệu

  • Mở IRI Workbench và khởi động trình hướng dẫn Công việc Tạo Bảo vệ Mới (Tạo mặt nạ) cho FieldShield.
  • Chọn bất kỳ tên nào bạn muốn giao cho công việc và nhấp vào tiếp theo.
  • Trên màn hình Nguồn dữ liệu, hãy nhấp vào Thêm nguồn dữ liệu và tìm tệp CSV bạn đã tạo.
  • Nhấp vào Chỉnh sửa Tùy chọn Nguồn và trong Tùy chọn, hãy thay đổi loại Định dạng thành CSV và nhấp vào OK.
  • Nhấp vào Khám phá siêu dữ liệu và theo dõi qua trình hướng dẫn. Nó sẽ phát hiện trình phân tách là ‘,’ và có thể tạo dữ liệu trường. Rất có thể nó sẽ chọn ASCII cho kiểu dữ liệu. Để thay đổi điều này, hãy bấm vào kiểu dữ liệu trường bạn muốn thay đổi, sau đó chọn kiểu dữ liệu bạn muốn sử dụng. Khi bạn hài lòng với các loại dữ liệu của mình, hãy nhấp vào Hoàn tất .

  • Nhấp vào Tiếp theo để chuyển đến màn hình Mục tiêu dữ liệu và nhấp vào Thêm mục tiêu dữ liệu . Sau đó, đặt tên cho tệp CSV bạn muốn tạo và nhấp vào OK .
  • Nhấp vào Bố cục Trường Mục tiêu để hiển thị màn hình nơi bạn sẽ đắp mặt nạ:

  • Bảng dưới cùng sẽ hiển thị cho bạn tất cả các trường sẽ có trong tệp đích của bạn. Chọn tên trường bạn muốn tạo mặt nạ, nhấp vào mũi tên menu Bảo vệ Trường và chọn chức năng tạo mặt nạ mong muốn từ hộp thả xuống.
  • Hoàn thành các thông số của hộp thoại, nhấp vào OK (hai lần) và Kết thúc để hoàn thành trình hướng dẫn công việc.
  • Công việc FieldShield của bạn sau đó sẽ được tạo cho bạn:

Xem lại và nếu cần, hãy sửa đổi và lưu lại công việc tạo mặt nạ dữ liệu của bạn. Chạy nó từ GUI, dòng lệnh hoặc từ trong ứng dụng để tạo tệp mà bạn sẽ tải lên lại MongoDB.


Nhập Bảng có Mặt nạ

Sử dụng tiện ích Nhập MongoDB (mongoimport) để chạy các lệnh:

--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)>

* Để nhập lại mọi thứ vào bộ sưu tập cũ, bạn phải cho nó biết bạn đang nhập trường nào để truy vấn các bản ghi hiện có. Một ví dụ sẽ là email; nó sẽ khớp tất cả các bản ghi nhập với email hiện có của họ và cập nhật hồ sơ.


Dữ liệu sau khi tạo mặt nạ

Dưới đây là các bản ghi trong bảng mục tiêu; được hiển thị với MongoVUE. Lưu ý rằng chỉ số thẻ tín dụng được biên tập lại trong quy trình FieldShield; các trường khác có thể đã được bảo vệ bằng các chức năng tương tự hoặc khác cùng một lúc.

Ngoài việc định nghĩa và thực thi các công việc FieldShield tương đối dễ dàng, có những lợi thế khác khi sử dụng nó với Mongo, bao gồm:

  • speed in volume - cả kiến ​​trúc hiệu suất IRI và Mongo đều được thiết kế để chia tỷ lệ tuyến tính
  • khả năng tương thích đa nền tảng - chọn từ các nguồn được hỗ trợ này
  • khả năng tích hợp dữ liệu đồng thời, di chuyển, sao chép, liên kết và báo cáo trong cùng một tập lệnh công việc CoSort (chương trình SortCL, công ty mẹ của FieldShield) và chuyển I / O

Liên hệ nếu bạn có bất kỳ câu hỏi nào về quy trình này hoặc bình luận bên dưới.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongo - vấn đề kết nối ruby

  2. 10 mẹo để cải thiện bảo mật MongoDB của bạn

  3. Nếu tôi có id tài liệu mongo dưới dạng một chuỗi, làm cách nào để truy vấn nó dưới dạng _id?

  4. Xóa một tài liệu con được lồng trong một mảng trong MongoDB

  5. Lỗi:queryTxt ETIMEOUT khi kết nối với MongoDb Atlas bằng mongoose