Oracle 9i Release 2 引入自訂函數回傳 SDO_GEOMETRY與Java/C 外部程序能力,使空間資料加密成為可能。本文提出兩層次加密方案:應用層金鑰解密與硬體綁定雙重金鑰,確保空間資料僅限授權 Client/Server 存取。
SDO_GEOMETRY 等自訂物件型別SDO_GEOMETRY → 存為 BLOB(或其他型別)DECRYPT_GEOM(p_blob BLOB, p_key VARCHAR2) RETURN SDO_GEOMETRYSELECT DECRYPT_GEOM(geom_blob, :client_key) FROM spatial_table效果:資料庫內僅存密文,無金鑰無法解析空間幾何。
效果:資料綁定特定 Server 硬體與授權 Client,遷移資料檔至他機、無授權 Client 均無法解密。
| 層面 | 簡單方案 | 高階方案 |
|---|---|---|
| 實作語言 | PL/SQL 或 Java | C (OCI) |
| 金鑰管理 | Client 傳入,Server 不存 | Server 硬體衍生 + Client 傳入 |
| 部署複雜度 | 低 | 高(需編譯共享庫、配置 extproc) |
| 安全等級 | 防資料庫內部人員竊取 | 防資料檔遷移、防未授權 Client/Server |
| 效能影響 | 每列函數呼叫開銷 | 同左,C 實作較快 |
Oracle Spatial 加密本質是存取控制下沉至資料層。利用 9iR2 物件型別回傳與外部程序能力,可構建從「應用層金鑰」到「硬體綁定雙重金鑰」的彈性安全體系。選型取決於威脅模型與維運成本權衡。