2010-04-15 81 views
0

這是情況。所有的機器和用戶都在同一個域中。 我們處於域名環境。有一些sql server 2005/2008存儲數據。在使用窗口身份驗證的域中有一個ASP.NET站點。現在,我們需要從sql server讀取數據並使用SqlDataSource和GridView顯示它們。但大多數用戶沒有直接訪問數據庫的權限。有沒有解決方案可以從數據庫獲取數據,並在不授予用戶權限的情況下在網站上顯示它們?訪問SQL服務器沒有從ASP.NET的域直接權限

最好的問候,

+0

現在,我可能會誤解這個問題,但是您是否需要創建一個數據庫用戶(在SqlServer中)並在您的Web應用程序連接字符串中使用它的憑據?最終用戶憑證與訪問數據庫沒有任何關係...... – 2010-04-15 08:31:54

+0

我處於使用窗口身份驗證的域環境中。您的解決方案無法工作。 – 2010-04-15 08:44:05

回答

3

是 - 創建數據庫服務器上的SQL用戶,並使用這一個SQL用戶帳戶來訪問數據庫,所有用戶(誰使用他們的域帳戶驗證到您的系統)。

這是一種非常常見的情況,它允許您輕鬆地對該帳戶可用的訪問進行細粒化,而不是試圖在SQL服務器上管理多個域樣式帳戶。

豐盛這裏連接字符串選項:

http://www.connectionstrings.com

同樣在這裏同一個相當不錯的MSDN文章:

http://msdn.microsoft.com/en-us/library/ms998300.aspx

+0

您提供的示例是SQL身份驗證,而不是窗口身份驗證。 – 2010-04-15 08:38:47

+0

事實上 - 你要求一個這樣做的方法,不涉及授予用戶對SQL框的權限(這將是Windows認證)。 – Paddy 2010-04-15 09:02:44

+0

SQL身份驗證允許您在連接字符串中指定用戶和密碼,但不能在連接字符串中指定用戶 – 2010-04-15 09:14:36

0

我可能誤解了你的問題,但如果您試圖避免明確地爲每個用戶單獨授予數據庫權限,您可以通過授予Active Directory安全組的權限來解決此問題您需要授予訪問權限的所有用戶都是成員。個人用戶將繼承組的權限。

但是,這裏還有一個問題,這可能意味着啓用SQL身份驗證是一個更簡單的解決方案。除非域中啓用了Kerberos身份驗證(或者Web服務器與數據庫服務器位於同一臺物理機器上),否則Web服務器將無法將用戶的憑據傳遞到數據庫服務器進行身份驗證 - 所謂的雙跳問題。谷歌爲「窗戶雙跳」瞭解更多信息。

相關問題