每個資料庫團隊最終都會面臨同一個難題:最優質的測試資料就是真實的生產資料,但將它用於生產環境之外,卻是一場隨時可能爆發的合規噩夢。GDPR、HIPAA 與 PCI-DSS 等嚴格法規可不在乎你是否「只是在進行測試」;一旦開發人員的筆電或測試伺服器洩漏了客戶的姓名、電子郵件或付款資訊,就構成了嚴重的資料外洩。Navicat 18 憑藉全新的「資料遮罩」功能正面迎擊此挑戰,該功能專為將敏感的生產記錄轉換為安全且逼真的模擬資料而設計,讓你的開發、測試與 QA 團隊能在零風險的前提下持續高效工作。
為什麼資料遮罩勝過刪除或偽造資料
完全刪除敏感欄,或將其取代為明顯虛假的預留位置(如 test1、test2、xxxxx),往往會破壞現有的測試工作流程,因為依賴逼真格式、唯一性條件約束或參考完整性的查詢,在面對無效資料時很容易出現異常。資料遮罩能在完整保留資料結構與可用性的同時,徹底移除任何可識別個人的敏感資訊,完美解決這項困境。
Navicat 18 支援五種業界標準遮罩技術:
- 替代: 將真實數值更換為逼真但虛構的數值(例如將真實姓名替換為另一個合理但不相關的姓名)
- 變異: 透過隨機偏移量微調數值或日期,在不暴露確切數字的情況下保持整體趨勢不變
- 重排: 在同一欄內隨機重新排列跨列的數值,使資料本身為真實內容但不再與正確的列綁定
- 雜湊: 將數值轉換為固定且不可逆的字串,當你需要一致性(相同的輸入永遠雜湊出相同的輸出)且不具備原始特徵時非常有用
- 空白處理: 直接將欄位完全留空,最適合用於生產環境之外完全沒有使用需求的資料
技術選擇取決於下游測試的實際需求;雜湊非常適合需要進行聯結或比對的數值,而替代技術則能保持資料的可讀性,方便 QA 人員進行直覺的審核。
Navicat 18 的資料遮罩:快速入門指南
資料遮罩功能適用於企業版和標準版,並支援 MySQL、Oracle、PostgreSQL、SQLite、SQL Server、MariaDB、MongoDB 以及 Snowflake 資料庫。以下示範如何將數欄的真實客戶資料轉化為安全且逼真的模擬資料:
- 在主視窗中,從工具列選擇「工具 -> 資料遮罩」。

- 這將會啟動「資料遮罩」精靈,指引我們逐步完成設定。
在第一個畫面中,我們可以選擇將遮罩後的資料傳輸至另一個資料庫(預設選項),或直接套用至現有資料表。這裡我們保持預設設定。

- 接下來選擇來源和目標資料庫。由於我們在上一個畫面選擇將遮罩後的資料傳輸至另一個資料庫,因此可以指定現有的資料庫,或直接將 SQL 輸出為檔案。這裡我們選擇輸出為檔案並命名為「customer_test」。如果需要在多個資料庫間重複使用相同的測試資料,這是最方便的做法。

- 下一個畫面是選擇要遮罩的資料表和列;這裡我們選擇 customer 資料表。(請注意,除 MongoDB 外,其餘資料庫執行資料遮罩時,資料表皆須具備主索引鍵。)系統提供兩種傳輸模式:「自動」與「進階」。「自動」模式會遮罩所有資料列並保留原欄位名稱;而選擇「進階」選項則能讓我們完全掌控目標資料表名稱、欄位名稱以及要處理哪些列。除了記錄集之外,我們維持其他預設設定,並將處理範圍限制為前 10 筆 customer_id。操作步驟如下:
- 選取「自訂記錄集」選項。這會將游標停留在記錄集清單中的新空白列上。
- 按一下文字框右側的省略號 [...] 按鈕會開啟篩選對話方塊。
- 在該對話方塊中,按一下加號 (+) 即可新增條件。其運作方式與視覺化查詢建立工具的 WHERE 子句完全相同。

- 我們可以按一下「SQL 預覽」按鈕來檢視產生的 SQL 陳述式。

以下是已完成的資料庫物件畫面:
接著選取要遮罩的欄位:store_id、last_name、email 以及 create_date。

- 下一個畫面我們將設定 Navicat 如何遮罩每個欄位。讓我們逐一進行配置:
store_id 欄
對於身為數值欄位的 store_id,它提供了豐富的遮罩選項。我們選擇「重排」作為遮罩技術,這會為每列指派有效的 ID,但順序完全隨機錯開。
我們可以在畫面底部預覽輸出結果。
last_name 欄
對於 last_name 欄位,我們選擇「替代」技術。系統提供了從通用型到專業型的多種分類,其中「姓名」分類非常符合我們的需求。
我們也可以選擇保留原始數值的一部分並遮罩其餘部分,或是直接更換為虛構數值。這裡我們選擇前者,將姓氏除了首字母之外的字元全部以星號 (*) 遮罩。
email 欄
電子郵件有其專屬的分類,允許我們對使用者名稱與網域部分套用不同的遮罩規則。針對網域名稱,Navicat 更提供了可自訂的候選清單。
create_date 欄
日期與時間提供了多種遮罩彈性,例如我們可以將 DateTime 轉換為 Date、修改數值或將其取代為逼真且符合邏輯的虛構時間。
- 最後的「摘要」畫面給予我們在開始遮罩前進行最後一次審核的機會。

- Navicat 會向我們提供正在執行的操作細節。

- 關閉對話方塊後,我們可以在 Navicat 中透過「檔案 -> 開啟檔案 -> 查詢...」指令來檢視輸出的檔案。

因為整個過程完全在 Navicat 內部執行,所以不需要將資料匯出到獨立的工具或指令碼中。只需短短幾分鐘,你就能在熟悉的日常介面中輕鬆完成整個資料庫的遮罩。
結語
資料遮罩成功填補了團隊在遵循合規要求與取得逼真測試資料之間的鴻溝。結合 Navicat 18 更豐富的 AI 工具集,它將過去繁瑣且容易出錯的手動流程簡化為幾次點按。如果你的團隊需要在開發或測試環境中處理受監管的敏感資料,這絕對是升級後非常值得立即體驗的重磅功能!

