2011-08-28 73 views
2

問題: SQL Server 2008 R2在經典的ASP頁面中使用SQL來拒絕任何嘗試更新數據庫。可以讀取但不能更新

簡而言之,可以讀,但不能更新/使用SQL在ASP頁

錯誤信息寫入數據庫:

的Microsoft OLE DB提供程序SQL Server錯誤 '80040E4D'

用戶登錄失敗

我花了6個多小時排除故障,但始終無人接聽

事情經過

  1. 密碼的用戶是正確的。雙重檢查。測試了一個錯誤的密碼,導致我無法從數據庫讀取數據。

  2. 當用戶密碼正確時,可以從數據庫中讀取。可以使用SQL從數據庫中讀取。只是無法使用SQL進行更新。

  3. db_datareader & db_datawriter權限檢查用戶

  4. 經過SQL Server日誌 - 錯誤18456嚴重14狀態8.這是密碼不匹配。但我確信密碼是正確的,因爲我可以從數據庫中讀取數據。只有當SQL嘗試寫入DB時,它才被拒絕。

提示

  • 是擁有db_datareader & db_datawriter檢查以及所需的dbo?我無法在SQL服務器管理工​​作室中檢查清單

  • 有關我需要執行的模式的任何事情?

任何人的幫助。非常感謝/

它在使用SQL Server 2000的另一個站點中完美正確地工作。當我遷移到SQL Server 2008 R2時,這是問題所在。

AA賈茲

+1

您在診斷問題方面做得很好,對於啓用審覈的登錄問題以及檢查錯誤日誌可以提供登錄失敗原因的詳細細節。從邏輯上從單一的權威性信息開始工作。忽略權限和您可以閱讀的內容。將服務器上的密碼重置爲簡單的方式,將其放在連接字符串中,看看是否有助於您進一步發展。 –

+0

對於讀取的頁面和寫入的頁面,您有不同的連接字符串嗎? 「登錄失敗」與您是否正在讀取或寫入無關 - 在SQL Server對您的意圖有任何想法之前會發生該錯誤。 –

回答

0

看起來你登錄到SQL Server只對數據庫的讀取權限(/表/服務器),它不具有寫權限,dbwriter所和dbreader在SQL Server中的角色2000年,在2008年,這一切都改變了你的角色到你的登錄。

請儘量給註冊的所有權限,如下

GRANT ALL ON <your_table> to <your_login> 
0

請嘗試從SQL Server Management Studio中,這個數據庫的查詢在查詢分析器更新任何表,如果它不工作,然後檢查表的權限或登錄用戶權限

相關問題