The Will Will Web | 開發 ASP.NET 使用 SQL Server 2000 要注意權限是否足夠

The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

開發 ASP.NET 使用 SQL Server 2000 要注意權限是否足夠

我今天在使用 Visual Studio 2008 開發一個 ASP.NET 的專案,資料庫是用 SQL Server 2000 SP4,但是當我想進入除錯模式(F5)進行測試的時候,卻發生【EXECUTE 使用權限在物件 'sp_sdidebug',資料庫 'master',擁有者 'dbo' 上被拒絕。】的錯誤,如下圖:

EXECUTE 使用權限在物件 'sp_sdidebug',資料庫 'master',擁有者 'dbo' 上被拒絕。

英文的錯誤訊息是:

EXECUTE permission denied on object 'sp_sdidebug', database 'master', owner 'dbo'.

上網查了一下發現原來 SQL Server 2000 從 SP3 之後就改成「如果不是資料庫的擁有者,就無法除錯預儲程序(Stored Procedure)」,進而導致 VS2008 在進入除錯模式的時候會發生例外狀況(Exception)。

而我們通常在「開發時期」都是用 sa 帳戶或信任連線與 SQL Server 連接,所以之前從未遇過此問題,而這個案子是用「最小權限」的方式在開發,也就是在 web.config 中所設定的連線參數只能連接至專案的那個資料庫而已,所以才會出現這個錯誤。

相關連結