2017-02-18 65 views
1

我正在開發移動售票系統,並且正在審覈我對嵌入式SymmetricDS的要求。到目前爲止,唯一的問題是我找不到任何直接解決行級安全問題的信息。在SymmetricDS中實現行級安全

使用案例:

一些移動點銷售的節點將被記錄在作爲賣方,有的管理者。每個人都可以查看其他人的銷售情況。賣家可以創造新的銷售,但從不修改它們。經理可以修改現有的銷售,但不能刪除它們。

問題:

我沒有在Android移動POS單位嚴格控制,所以他們不值得信任 - 這是不現實的,以防止反編譯的APK惡意賣方和創建一個惡意客戶端節點。我的環境具有安全性要求,因此惡意賣方不能修改服務器上的銷售表。我可以相信假設的惡意賣家不能訪問管理員憑證,我可以相信服務器軟件是安全的。

問題:

  1. 是服務器端的行級安全負載過濾器的工作?
  2. 過濾器腳本是否可以訪問發起更改的node_id?
  3. 過濾器腳本是否可以訪問用於註冊始發節點的認證憑證?
+0

什麼意味着行級安全? –

+0

行級安全意味着有一種機制來控制對單個行的CRUD訪問。用戶'A'可能能夠更新行1(可能是因爲他們創建了它),但只有讀取行2.用戶'B'可以更新所有行,但不能刪除任何東西。 –

回答

2
  1. 是的。其中的一些可以通過編寫器過濾器來實現,例如更新限制到某組節點。禁用從節點刪除行只意味着不應該爲該節點組創建刪除觸發器
  2. 是的,這是可能的。在抽象加載文件的擴展名中實現的方法接受攜帶主叫方外部ID的參數(org.jumpmind.symmetric.io.data.Batch#getSourceNodeIdDataContext#getBatch()
  3. 基本認證對於所有節點都是相同的。有一個密碼是在執行握手時自動生成的,並存儲在數據庫中。讓你的加載文件實現對稱接口ISymmetricEngineAware,它允許注入一個可用於訪問數據庫的引擎
+0

太好了,謝謝。經考慮,#3不是一個破壞交易的人;我只需要一個節點<=> Userid表,其中一個節點只能修改自己的行...假設我可以實現行級安全性。 :-) –