2014-06-11 23 views
2

我有一個應用程序在本地用戶的憑據下運行。但是,我想允許此應用程序使用特定憑證訪問MSSQL數據庫。使用特定的Windows帳戶連接到MSSQL,而應用程序使用不同的憑據

這不是一個問題,如果我使用SQL登錄,但我想使用一個特定的Windows帳戶,我有用戶名(以及域)和密碼。請注意,我不希望使用這些憑證運行整個應用程序。

這是可能的嗎? This SO question似乎暗示在指定的Windows憑據的連接字符串中使用Integrated Security=SSPI將允許我以該用戶的身份登錄到數據庫,但是我無法在我的測試機器上執行此操作。

鑑於SQL Server Management Studio如何登錄到數據庫(即它使用當前憑據或指定的SQL憑據,但似乎不允許指定的Windows憑據),我認爲這不能完成,但我會如確認這...

+0

這隻能做,如果你可以模仿你的應用程序,像這樣:http://stackoverflow.com/questions/125341/how-do-you-do-impersonation-in-net – JotaBe

回答

1

你可以處理這個作爲SQL Server端

通過封裝需要在存儲過程中的其他帳戶下完成的任務創建使用「EXECUTE AS條款」

Create Proc sp_Dosomething_As_specific_user 
WITH EXECUTE AS '{SpecificUser}' 
BEGIN 
/*Do Something*/ 
END 

,並允許用戶帳戶執行權限上

GRANT EXEC ON sp_Dosomething_As_specific_user TO {Actual_User} 

對於更多的細節就在這個 http://msdn.microsoft.com/en-us/library/ms188354.aspx

這是「EXECUTE AS」的條款看意味着你已經限制了用戶只能運行作爲另一個用戶的特定預定義動作或一組操作,而不是一般的許可讓他們模仿其他用戶

這將有助於讓任何負責IT安全的人快樂

+0

一個有趣的答案,但給這是客戶端問題,並且我無法真正將數據庫更改爲這樣的範圍,這不是我正在尋找的解決方案。 – Shaamaan

相關問題