如何確保數據庫中的記錄不能被中間層軟件以外的其他人修改(例如,阻止DBA更改值)?確保開源數據庫中的記錄值完整性
我想使用開源堆棧實現一個簡單的多層計費程序。該應用程序的主要功能是追蹤支付一個產品的金額。數據模型的主要部分基本上是這樣的:
CREATE TABLE ACCOUNT_LOG(
USER_ID NVARCHAR2(128), /* user identifier of some sort */
TIMEST TIMESTAMP, /* the UTC timestamp of the payment. */
PREV_AM NUMBER(13,3), /* the previous money level. */
DIFF_AM NUMBER(13,3), /* the the money delta (+/- possible) */
NEXT_AM NUMBER(13,3), /* the new money amount. */
UOM NVARCHAR(20) /* the money type (Euro, Dollar, etc.) */
CONSTRAINT pk PRIMARY KEY (USER_ID, TIMEST));
然而,這種結構很容易受到DBA,他/她可以去,改變各種人士數額或將在未經授權的金錢增加。
如何確保本表中的數據只能由中間層軟件修改(例如檢測其他方式的變更)?請注意,我想使用開源數據庫引擎,因爲我的程序應該是儘可能便宜。
我有我自己的想法(骯髒的方式),但我想聽聽你的意見/最佳實踐。另外,如有必要,請隨時索取更多詳情。
謝謝你的時間。
爲什麼不鼓勵DBA?該軟件也跟蹤他/她自己的付款... – akarnokd 2009-07-16 20:41:45
我有其他的事情,所以我打開了一個賞金,以增加我的機會。別擔心,我不會讓系統自動接受答案。 – akarnokd 2009-07-18 20:54:45
也可隨意質疑體系結構本身,因爲實現將重用大量現有計算機。 – akarnokd 2009-07-18 20:56:41