所以我們可以說,在你的應用程序,你必須處理的數據內容的安全性,以這樣的方式應用的幾個「實體」必須被固定,使得用戶無法查看,編輯等某些代碼範圍。假設我們已經獲得了位置,部門,部門,ProductLine等實體的安全性,並且每個用戶都與每個實體的一系列代碼關聯。你會在這種情況下去規範數據庫,以便所有授權用戶的代碼都存儲在用戶配置文件表中,而不是連接表嗎?例如,可以使用正則表達式來指定柵格,包括和排除等。我已經在數據倉庫應用程序中成功地使用了這種方法,但對於事務性系統,我不確定,因爲每個人都在這裏說,沒有它。但對我來說,看起來相當愚蠢的是必須加入所有這些表格,水合實體只是爲了獲得代碼列表,以便我可以做User.HasAccessTo<TEntity>(entityId)
。處理數據內容安全
Q
處理數據內容安全
0
A
回答
1
有我們使用,我的工作的另一種方法。
主政系統,如果你想複雜,所以我們的角色的概念,或配置文件。角色或配置文件指定用戶可以施加哪些操作以及哪些數據。
然後,我們有一個樹狀結構,爲用戶。一個用戶屬於一間辦公室,屬於一個部門,屬於一個部門等...
對於施用,每一個樹的元素可以關聯的任何個人資料(其中幾位如有必要)。
如果我們要保持這個然而由於是,這將導致查詢膨脹,因爲像你這樣的規定may user X modify Y ?
一個簡單的問題,就需要收集所有資料,收集所有的角色屬性,每個配置文件,然後最後發展檢查操作是否被授權的角色。
爲了簡化查詢,該表的非規範化版本,因此週期性創建(比如每小時),和查詢是針對非規範化的版本(存儲在SQLite數據庫)上運行。
當然,這意味着你有一定的時間由管理員所做的修改生效(你必須等待,直到非規範化+複製)之前,但它工作得很好,因爲你有兩全其美的:
- 管理員有一個歸一化圖
- 查詢是超快
訣竅是具有適當的「複製」的機制。首先使用sqlite數據庫生成文件,然後將其複製到每臺機器上,將進入的事務(只讀)置於保持狀態,並等待事務沒有執行,然後將新數據庫移到舊數據庫的位置,並恢復待處理的交易。它工作得很好,但它意味着你不想每秒更新一次數據庫文件。
相關問題
- 1. 內容類型json,處理私人數據安全嗎?
- 2. 從數據庫處理內容爲php
- 3. 內容管理系統安全性?
- 4. 內容處理:DIV與全屏
- 5. 處理TableView內容
- 6. 內容安全政策Firebase
- 7. DAM內容不安全
- 8. 與內容安全策略
- 9. AWS內容安全策略
- 10. 安全令牌處理
- 11. 「安全」處理互斥鎖?
- 12. Apache Allowoverride FileInfo安全處理
- 13. 安全地處理密碼
- 14. 處理表單安全
- 15. signed_request的處理不安全
- 16. 從數據庫中刪除的內容,安全防範
- 17. CefSharp - 如何處理「此頁面有不安全的內容。」信息?
- 18. Docker:處理Docker容器內apt-get包的安全更新的最佳方法
- 19. 使用內容處理HTTP頭的安全性考慮事項是什麼?
- 20. Python多處理和pyodbc數據庫訪問「不安全」?
- 21. 使用PHP進行安全輸入數據處理
- 22. 從中心點(控制器核心)處理數據安全性?
- 23. ASP.NET MVC在安全內容與非安全內容之間切換
- 24. 確定哪些內容已安全傳遞,哪些不是安全內容
- 25. 頭位置+內容處理
- 26. UIScrollView:處理動態內容?
- 27. Struts2的內容處理
- 28. 處理靜態內容(CSS)
- 29. 獲取內容和處理
- 30. schema.org重複內容處理
非常有趣的使用SqlLite的,但我不認爲他們會去這裏。但是,嘿,我可以創建一個非標準化(報告)表,將這個整個配置文件信息收集在一張表中。 我們也有角色的概念,NetSqlAzman用於定義任務,操作和角色。用戶可以屬於任何角色,並且與數據內容分離。角色,操作和任務更多地用於用戶可以訪問的模塊,屏幕等,數據內容安全性將定義用戶可以訪問的信息。 – epitka 2009-10-26 14:47:23