我已經閱讀了很多關於「int vs主鍵的GUID」問題的文章,並且可以看到如果使用順序GUID,則不需要擔心性能太多。使用int作爲主鍵存在安全風險嗎?
我老闆想要使用GUID的原因是他覺得它更安全。我們將所有參數加密成一個MVC調用,所以我不確定我是否看到這個問題,但他的主要觀點是,用一把鑰匙(假設他們可以打破加密),然後很容易猜出下一個密鑰。即使使用僞連續GUID(如COMBs)(http://csharptest.net/1250/why-guid-primary-keys-are-a-databases-worst-nightmare/),您也無法使用GUID執行此操作。
但是使用int確實不安全嗎? (我們使用Triple DES進行加密。)在使int64主鍵「幾乎連續」的情況下是否有任何里程數 - 即它們總是上升但在序列中留下間隙?
如果有人有任何關於此安全性的意見,我將不勝感激。
密鑰類型的選擇與安全性沒有任何關係。一個密鑰的醜陋與安全無關 –
如果你真的關心安全性,那麼就使用存儲過程並只允許執行過程,不能直接訪問表,視圖或其他對象。然後,即使他們猜測身份證,他們可以做的事情也非常有限。 – HLGEM
使用「INT」不會比使用GUID更安全 - 您只需檢查用戶X請求有關帳戶'42'的信息,他實際上有權/允許查看該信息。 –