2013-06-24 32 views
2

我有一個Web應用程序,它在0123p帳戶下的IIS AppPool中運行。 WebApp連接到SQL Server 2008 R2分貝與Integrated Security = True;如何在網絡服務下控制運行網站的數據庫權限?

當我運行SQL事件探查器,同時運行該網站時,我可以看到它使用NT AUTHORITY\NETWORK SERVICE登錄。

但是我在Security> Logins下看不到相應的登錄名。

我的問題是:

  • 要的SQL Server登錄,NT AUTHORITY\NETWORK SERVICE被映射到 ?
  • 如何控制NETWORK SERVICE的權限?
  • 降低SQL SERVER中NETWORK SERVICE帳戶的權限是否是一種好習慣?

回答

1

NT AUTHORITY \ NETWORK SERVICE未映射到Sql Server中。你必須自己做。嘗試連接到一個離線資源時,網絡服務模擬計算機帳戶。授予對DOMAIN \ Servername $的權限通常可以工作。

一旦創建了Sql Server映射,您就可以像控制每個其他帳戶一樣控制權限。這是相同的。

Personnaly,我認爲它不是一個好的做法混合集成安全&網絡服務,因爲它是一個內置的帳戶。對於很多環境來說可能沒問題,但是你沒有高度的安全性。例如,如果訪問數據庫的許多網站都部署在Web Farm中,則您將完全失去對權限的控制。管理也很麻煩。

你有兩種選擇,以避免這種情況:

  • 使用SQL身份驗證

這是相對不安全。一個不滿的前僱員可能會惡意使用這些信息,訪問者可能會在某個屏幕上看到代碼,或者源代碼可能意外地在外面散播。

  • 更改應用程序池標識。

只需創建/重新使用獨立的Windows帳戶,授予它在SQL Server中所需的最低訪問權限,然後將應用程序更改爲在此新帳戶的上下文中運行。 閱讀更多here