Oracle如何運算元據的加密

2021-06-19 15:23:45 字數 1877 閱讀 2833

oracle 應用伺服器應用程式使用 sec_manager.secure_package程式包中的例程儲存加密格式的私人資料(如使用 secure_package.secure_data儲存 card_no 資料)。根據create_packages.sql中描述的定製加密程式包的定義,對 card_no 列的訪問已被函式呼叫所取代,該函式呼叫的引數是要儲存在列中的值以及用於資料解密的金鑰。

例如,要將「a1b2c3d4」用作加密金鑰,必須將最初如下所示的典型 insert語句

insert into customer (name, card_no)

values ('jane doe', '1234123412341234');

轉換為:insert into customer (name, card_no)

values ('jane doe', sec_manager.secure_package.secure_data('1234123412341234','a1b2c3d4'));

同樣,oracle 應用伺服器應用程式還使用 sec_manager.secure_package中的例程讀取加密格式的資料,如 card_no 資料的 secure_package.clear_data。然後利用插入值時使用的加密金鑰來以明文格式取回受保護資訊。這種情況下,必須將最初為如下所示的 典型 select語句select name, card_no

from customer;

修改為:select name, sec_manager.secure_package.clear_data(card_no,'a1b2c3d4')

from customer;

當完成所有開發(希望由值得信任的人員完成)後,還可以將公升級後的**加密,以便甚至連公升級指令碼的資料庫管理員都無法確切了解安全性的實現方法。通過 oracle 提供的實用程式實現加密,可以使用如下所示命令

wrap iname=secure_package.sql oname=secure_package.sec

打包後,可以在 sql*plus 提示符後象執行任何明文指令碼一樣執行 secure_package.sec,且 oracle 引擎還將對其進行解釋。同一概念也可應用於任何其他與安全性相關的 pl*sql 指令碼。此方法不但禁止了參與**公升級的人員(資料庫管理員、開發人員、支援和管理人員)檢視程式包內容,而且程式包內容還以加密格式部署到資料庫中,因此 以後要嘗試破解這些程式包內容是很難的。

即使具有資料庫管理員許可權的入侵者將 connect許可權授予安全物件所有者 sec_manager以檢視保護和加密程式包的內容,也不會有任何明文會儲存在這些物件的資料庫中。由於 oracle 未提供任何「解包」實用程式,因此入侵者將必須破解 oracle 的加密演算法才能夠檢視程式包內容。

即使所有安全措施都已經到位了,了解是否對機密資料進行了未授權訪問仍很重要。最簡單的方法是使用內建的資料庫審計功能在表級別監視對受保護數 據的訪問(select、insert、update、delete),而不管請求事務的資料庫連線如何,命令如下: audit insert, update, select on ship2004.customer;

但使用 oracle fine grained auditing (fga),您可以進一步改進訪問監視以最小化處理開銷並提供有意義的資訊。enable_fga.sql 中提供的示例使用 dbms_fga程式包啟用基本的審計策略。資料庫中的內建審計機制禁止使用者繞過審計,從而確保了它的精確性。可以在 dba_fga_audit_trail 檢視以及 dba_common_audit_trail 檢視中檢視審計記錄,在策略指定 audit_trail = dbms_fga.db_extended的情況下,審計記錄甚至可以包含 sqlbind和 sqltext資訊。

可以使用 oracle 提供的功能輕鬆地增強此處提供的示例,從而加入電子郵件或尋呼機通知和啟用條件,以只生成特定事件的審計記錄。

JdbcTemplate如何運算元據庫

首先我們之前講解了如何用jdbc來運算元據庫 但是這種方法有很多的侷限性 不足 因此我們的前人對他們來進行了改進,首先,之前的那種方法執行緒要不斷的建立關閉,非常的麻煩,因此有了連線池的技術,讓這些連線可以重複使用 改進了以後 量還是非常的大,為了更加的簡化 又有了jdbctemplate技術 那麼...

jmeter如何運算元據庫

一 jmeter操作mysql的步驟 1 匯入jdbc的jar包,因為jmeter本身不能直接連線mysql,所以需要匯入第三方的jar包,來連線mysql 3 寫sql,執行sql 4 檢視結果 二 jmeter配置mysql連線,新增乙個jdbc connection configuration...

SQL語言之運算元據(Oracle)

當新增 更改或者刪除資料庫中的資料時需要使用dml語句。dml依據的乙個集合構成了乙個被稱之為事務的邏輯單元 當完成以下操作是,dml語句被執行 新增新的行到表中 修改表中的行 刪除表中的行 一 新增乙個新行到表中 insert語法 每次只能插入一行 指定列新增 以hr使用者中的department...