在我的網站的Application_Start中,我執行存儲過程以從一個SQL Server 2008數據庫讀取一些數據。Ado.Net具有隻讀SQL Server用戶的ExecuteReader
這是對這個數據庫的唯一調用。
我會創建一個具有隻讀權限的特定SQL Server用戶來執行此sp。
我創建了一個新的SQL Server用戶與db_datareader角色,但是當我執行的是SP我有一個錯誤在這行:
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
的錯誤是:EXECUTE permission denied on object
...
哪有我解決這個問題?
感謝
我知道你已經創建了一個新用戶,給了他'db_datareader'角色,並且授予他執行SP的權限。您是否考慮授予他連接到您的數據庫的權利?聽起來很奇怪,用戶需要連接權限才能進行連接,並對數據庫執行任何操作。 – 2010-11-08 17:21:46
我沒有那樣做,但它似乎工作,因爲它打開連接,然後執行ExecuteReader。我正在嘗試授予用戶,但它不起作用。請參閱評論的答案。謝謝。 – opaera 2010-11-08 17:52:05