我有一個有趣的設計問題。我正在設計項目的安全性方面,以允許我們針對不同的成本獲得不同版本的程序,並允許管理員類型的用戶向其他用戶授予或拒絕部分程序的訪問權限。它將轉到基於網絡並託管在我們的服務器上。將SQL表結構爲匹配或不返回結果是更好嗎
我對每個'資源'或屏幕使用簡單的允許或拒絕選項。
我們將擁有大量資源,用戶可以設置許多不同的組來控制訪問。每個用戶只能屬於一個組。
我有兩種方法來記住這一點,並且很好奇,對於SQL服務器來說性能更好。
選項A 訪問表中存在條目意味着訪問是允許的。這不需要數據庫中的列來存儲信息。如果沒有結果返回,則訪問被拒絕。
我認爲這將意味着一個較小的表,但會查詢搜索整個表,以確定沒有匹配?
選項B 控制允許/拒絕的數據庫中包含一個位列。這意味着總會有結果被發現,並且會形成更大的表格。
想法?
用戶表將與訪問控制表分開,因此添加或刪除訪問權將不會影響用戶的存在。此外,默認情況下,如果沒有結果被發現拒絕訪問,所以不應該可能意外獲得訪問權限。 – Tilendor 2008-10-10 00:17:11