Trong Oracle 11g, tính năng Data Masking (ẩn/mã hóa dữ liệu nhạy cảm) không có sẵn ở cấp CSDL cơ sở như Oracle 12c trở lên (với Data Redaction
), mà phải dùng qua công cụ ngoài hoặc tạo thủ tục thủ công để masking dữ liệu khách hàng.
Dưới đây là giải pháp đầy đủ và từng bước thực hiện thủ tục masking dữ liệu KH trong Oracle 11g:
🎯 MỤC TIÊU
-
Che giấu dữ liệu nhạy cảm (CMND, SDT, Email, Tài khoản…) trong môi trường kiểm thử, báo cáo, hoặc khi cấp quyền cho nhân viên không được phép truy cập thông tin đầy đủ.
-
Dữ liệu có thể được “làm mờ” (masking), ví dụ:
-
Số điện thoại:
0987654321
➝0987****21
-
Email:
a.binh@example.com
➝a*****@example.com
-
🧩 GIẢI PHÁP CHO ORACLE 11g
Có 2 hướng giải quyết chính:
Giải pháp | Mô tả | Khi dùng |
---|---|---|
Thủ tục thủ công (PL/SQL Masking Function) | Viết hàm để làm mờ dữ liệu và tạo view giới hạn | Khi không có Oracle Data Masking Pack |
Sử dụng Oracle Data Masking Pack (thuộc Oracle Enterprise Manager) | Mask dữ liệu gốc trên bản sao DB (non-prod) | Khi có bản quyền Oracle EM + Data Masking Pack |
🛠️ I. CÁCH 1 – MASKING THỦ CÔNG BẰNG PL/SQL FUNCTION + VIEW (Đề xuất cho Oracle 11g)
🧱 Bước 1: Tạo hàm masking dữ liệu
Tương tự, tạo hàm mask email:
🧱 Bước 2: Tạo View chứa dữ liệu đã masking
Giả sử bảng gốc là KHACH_HANG
với các cột:
Tạo view:
🧱 Bước 3: Cấp quyền cho người dùng chỉ truy cập view đã mask
✅ Kết quả đầu ra
ID | TEN_KH | SDT | CCCD | |
---|---|---|---|---|
1 | Lê Văn An | 0987****21 | l*****@gmail.com | ************ |
2 | Trần Bình | 0912****78 | t*****@mb.vn | ************ |
🧰 II. CÁCH 2 – DÙNG ORACLE DATA MASKING PACK (CẦN LICENSE EM)
Chỉ áp dụng khi bạn có Oracle Enterprise Manager + license Data Masking Pack.
Các bước:
-
Tạo bản sao database (duplicate database) sang môi trường dev/test.
-
Trong EM (Oracle Enterprise Manager):
-
Vào mục Masking Definition.
-
Chọn các bảng nhạy cảm.
-
Chọn kỹ thuật masking (Random, Substitution, Shuffling...).
-
Chạy job Data Masking trực tiếp.
-
-
Sau khi masking, export data (Data Pump) từ DB test.
-
Import dữ liệu đã masking vào môi trường dev hoặc demo.
✅ Đây là cách phù hợp khi cần mask dữ liệu trên môi trường non-prod để đảm bảo dữ liệu test không lộ thông tin khách hàng.
Chi tiết các bước:
Dưới đây là ví dụ cụ thể và chi tiết từng bước triển khai Cách 2 – dùng Oracle Data Masking Pack thông qua Oracle Enterprise Manager (EM) để masking dữ liệu khách hàng trong môi trường kiểm thử, giả lập hoặc báo cáo nội bộ.
🧩 KỊCH BẢN MÔ PHỎNG
Bạn là quản trị hệ thống của nhà mạng. CSDL sản xuất
PROD_KH
chứa bảngKHACH_HANG
, gồm các thông tin nhạy cảm: số điện thoại (SDT), email, CMND, địa chỉ...
Bạn cần tạo bản bản sao DB masking để cấp cho nhóm phát triển ứng dụng nhưng không được lộ dữ liệu thật của khách hàng.
🛠️ CÁC BƯỚC THỰC HIỆN (Oracle Data Masking Pack)
🔹 Bước 1: Tạo bản sao dữ liệu từ Production
Dùng RMAN hoặc Data Pump để clone từ PROD:
Hoặc dùng Oracle Cloud Control (EM) chọn:
Targets > Databases > PROD_KH > Schema > Clone to Test Database
🔹 Bước 2: Đăng nhập Oracle Enterprise Manager (Cloud Control)
-
Vào giao diện Oracle EM (thường là
https://<host>:7799/em
) -
Chọn Database
DEV_KH
-
Vào menu:
🔹 Bước 3: Tạo Masking Definition
-
Chọn bảng cần masking:
-
Bảng
KHACH_HANG
-
Cột cần masking:
SDT
,EMAIL
,CMND
,DIACHI
-
-
Chọn kiểu masking cho từng cột:
Cột | Kỹ thuật masking | Giải thích |
---|---|---|
SDT | Partial Masking | Hiển thị 4 số đầu + 2 số cuối (vd: 0987****65 ) |
Custom Scrambling | Làm mờ phần local, giữ tên miền | |
CMND | Random Digits | Sinh số CMND ngẫu nhiên cùng định dạng |
DIACHI | Nulling | Gán giá trị NULL hoặc 'Ẩn vì bảo mật' |
-
Xác nhận & lưu định nghĩa masking
🔹 Bước 4: Chạy job masking
Trong giao diện EM:
-
Vào menu:
-
Chọn DB đích:
DEV_KH
-
Chọn Masking Definition vừa tạo
-
Lập lịch chạy hoặc chạy ngay
🔹 Bước 5: Kiểm tra dữ liệu sau khi masking
🔹 Bước 6: Export dữ liệu DEV đã masking
Sử dụng Data Pump
:
Kết quả: bạn có file khachhang_masked.dmp
không chứa dữ liệu thật – an toàn để cấp cho dev, test, hoặc đối tác.
✅ ƯU ĐIỂM CỦA CÁCH 2
-
Dữ liệu gốc vẫn giữ nguyên trong PROD
-
Masking thực hiện trên bản sao – không ảnh hưởng hệ thống vận hành
-
Đáp ứng tuân thủ bảo mật: GDPR, Nghị định 13, ISO/IEC 27001
-
Masking có thể tự động hóa, lập lịch định kỳ
-
Kết quả đầu ra rõ ràng, dễ kiểm tra, có báo cáo từ Oracle EM
⚠️ LƯU Ý
-
Phải có Oracle Enterprise Manager + license Data Masking Pack
-
Cần chuẩn bị trước các định nghĩa masking phù hợp từng cột
-
Không phù hợp để masking trực tiếp môi trường PROD – chỉ nên dùng cho bản clone
✅ KẾT LUẬN
Tình huống | Giải pháp nên chọn |
---|---|
Chỉ dùng Oracle 11g, không có bản quyền EM | Viết thủ tục PL/SQL + view masking |
Có license Oracle Data Masking Pack | Dùng Oracle Enterprise Manager để masking bản sao DB |
Cần masking + giám sát truy cập + audit | Kết hợp masking + audit + RBAC + view bảo mật |
Cần masking tự động hóa nâng cao | Xem xét dùng bên thứ ba như Thales CipherTrust, Informatica |
Website không chứa bất kỳ quảng cáo nào, mọi đóng góp để duy trì phát triển cho website (donation) xin vui lòng gửi về STK 90.2142.8888 - Ngân hàng Vietcombank Thăng Long - TRAN VAN BINH
=============================
Nếu bạn không muốn bị AI thay thế và tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp hay làm chủ Database thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ bí kíp thực chiến, thủ tục, quy trình của gần 20 năm kinh nghiệm (mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google) từ đó giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
- Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin_1200
- Linux: https://bit.ly/linux_1200
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội
=============================
AI, trí tuệ nhân tạo, artificial intelligence, machine learning, deep learning, LLM, ChatGPT, DeepSeek, Grok, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty