我在尋找內部Web應用程序到數據庫層的端到端身份驗證的最佳實踐。Intranet應用程序的數據庫身份驗證
我看到的最常見的情況是使用一個SQL帳戶,其權限設置爲應用程序所需的權限。此帳戶由所有應用程序調用使用。然後,當人們需要通過查詢工具訪問數據庫時,或者通過查詢訪問創建一個單獨的組,並且人們可以訪問該組。
我看到的另一個場景是使用完整的Windows身份驗證端到端。因此,用戶自己被添加到具有所有權限設置的組中,以便用戶能夠在應用程序的參數外進行更新和更改。這通常涉及到將人員保護到適當的存儲過程,以便他們不直接更新表。
第一種情況似乎比較容易維護,但如果應用程序中存在安全漏洞,則整個數據庫都會受到危害,這引發了擔憂。
第二種情況似乎更安全,但是在數據庫上的存儲過程中存在大量業務邏輯的反面關注。這似乎限制了Nhibernate和LINQ等一些非常酷的技術的使用。然而,在這個時代,人們可以通過多種不同的方式使用數據,我們不會預見混搭等等,這是最好的方法。