基本設置很經典 - 您正在創建一個Windows Forms應用程序,該應用程序連接到一個數據庫並執行各種企業級工作。當然,這樣的應用程序將有許多用戶在數據庫中擁有不同的訪問權限,並且每個用戶都有自己的登錄名和密碼。如何確保Windows窗體應用程序的數據庫安全性?
那麼你如何實現呢?一種方法是爲每個應用程序用戶創建一個數據庫登錄,但這是一件相當嚴重的事情,甚至需要DB服務器上的管理員權限等。如果數據庫服務器託管多個應用程序,管理員很可能不會對此感到高興。
在網絡世界中,通常會創建一個自己的「用戶」表,其中包含所有必需的信息,並使用一個固定的數據庫登錄進行所有交互。這對於一個web應用程序來說都很好,但是windows窗體不能隱藏這個主登錄信息,完全否定安全性。 (它可以嘗試隱藏,但所有這些嘗試很容易被打破)。
那麼...有一些中間的方式嗎?也許可以使用固定登錄登錄,然後從檢查用戶名和密碼的特殊存儲過程中提升權限?
加:好的,所以綜合認證和windows羣體在大多數情況下似乎是公平的選擇,所以我接受了相關的答案。不過,如果任何人都可以想出一個非集成的身份驗證解決方案,他們會從我這裏得到讚揚。
同意。如果您熟悉ASP.NET模型,只需將WinForms應用程序視爲模擬= true並且單個用戶登錄。 – 2010-03-21 12:19:09
好吧,如果您有Windows域,這是個好主意。如果你不......那麼我認爲它不是那麼複雜,但仍然有這樣的應用程序 - 小公司的應用程序等等。而且這些應用程序更可能使用共享數據庫主機。 – 2010-03-21 12:41:43
無論如何Upvoted,但我仍然希望在接受答案之前看到有關非域方案的建議。 – 2010-03-21 12:42:22