2010-06-18 260 views
0

我正在開發一個連接到SQL 2000數據庫的Web應用程序。一切工作完全在我的數據庫(這實際上是SQL 2008),但當我嘗試將其遷移到另一臺服務器(實際上運行SQL 2000)時,我得到一些奇怪的錯誤。登錄用戶失敗?

我得到登錄失敗,該Web應用程序使用的用戶名,所以我做了我的正常故障排除步驟...

我重置密碼,它應該是什麼,確信用戶被映射到它正試圖連接到的數據庫。我通過企業管理器使用用戶名和密碼連接到數據庫,並能夠運行查詢。我重置了SQL服務器。

除了可能在我的應用程序中出現某個地方出於某種原因更改密碼的原因之外,我完全沒有想法。無論如何,看看SQL服務器看到什麼密碼?我只是想縮小搜索範圍。

無論是或有人有任何其他的建議,我可以如何解決這個問題?

編輯:此外,網絡應用程序可以與數據庫交談,它擊中數據庫以獲取登錄憑據,並且它可以登錄沒有問題。當我嘗試從數據庫獲取更多信息時,該錯誤即將出現在應用程序中,例如報告或導出位置的參數。

在此先感謝!

+0

只是爲了澄清:這是一個Web應用程序?它是從不同於實際數據庫的服務器上運行的? – vimist 2010-06-18 20:25:52

+0

@首先它運行在與數據庫相同的機器上,它運行在Tomcat 6.0服務器上。 – Shaded 2010-06-18 20:27:19

+0

查看下面更新的答案。 – vimist 2010-06-18 20:33:20

回答

1

首先,問題不在於用戶登錄失敗。從您的描述中,登錄成功。但是,您聲明您以後在嘗試訪問某些對象時遇到異常。這聽起來像是登錄與之關聯的數據庫用戶以及它試圖訪問的對象的授權/權限問題。您是否嘗試過使用企業管理器連接到數據庫,並使用該站點使用的相同憑據並將相同的查詢作爲Web應用程序執行?

+0

我還沒有嘗試過應用程序正在運行的EXACT查詢,但我已使用該登錄進行連接,並且能夠查詢最有可能引用的整個表格。我試圖追查現在的確切查詢,我會嘗試。 – Shaded 2010-06-18 20:35:06

+0

這個webapp使用Hibernate來處理它的查詢,並且hibernate告訴我它從哪個表中獲取錯誤。我通過SQL管理器重新創建了查詢,並且運行良好。還有其他建議嗎?我真的很茫然。 – Shaded 2010-06-18 20:44:23

+0

@Shaded - 使用SQL事件探查器,您可以捕獲大多數針對數據庫嘗試的查詢。這會給你準確的查詢問題的數據庫和有關用戶的信息(雖然不是密碼)。 – Thomas 2010-06-18 20:59:53

1

可能你的SQL服務器沒有設置爲允許遠程連接?

編輯:或者您的防火牆沒有打開正確的端口?

EDIT2:

如果你的Web腳本是在同一臺服務器的SQL服務器上,我能想到的唯一的事情是,您所指定的密碼不正確,如果你引用的舊服務器按名稱(即使它是本地主機),並且你沒有更新它。如果Web腳本位於不同的服務器上,請檢查您的防火牆端口並確保將sql server設置爲允許遠程連接。

EDIT3:

Appologies,我沒有看到你更新前我張貼的最後的編輯(EDIT 2)。托馬斯是對的,給一個去。

+0

嘎!我忘了其中一個最重要的細節...檢查上面的編輯! – Shaded 2010-06-18 20:22:03

+0

該應用程序使用127.0.0.1連接到數據庫,因爲它始終是數據庫本地的。我無法驗證密碼是否正確,因爲我無法檢查通過代碼的TONS跟蹤哪些密碼正在發送到數據庫。我希望有一個更簡單的方法來在SQL端攔截它。 – Shaded 2010-06-18 20:36:44

0

不知道你怎麼做你的遷移,但你可能想確保你的SQL用戶沒有得到孤兒:

從 - http://www.fileformat.info/tip/microsoft/sql_orphan_user.htm

首先,確保這就是問題所在。這將列出孤立用戶:

EXEC sp_change_users_login 'Report' 

如果你已經有這個用戶登錄ID和密碼,這樣做解決它:如果你想創建一個新的登錄ID和密碼

EXEC sp_change_users_login 'Auto_Fix', 'user' 

對於此用戶,請通過執行以下操作來解決問題:

EXEC sp_change_users_login 'Auto_Fix', 'user', 'login', 'password' 
0

我發現問題了!

這實際上是我在應用程序中留下的一些徘徊的查詢。我開始填充一些不同的查詢,並且查詢從未被刪除,只要我將這些錯誤停止彈出即可。

仍然奇怪的是,這不會影響我的機器上的應用程序,但在其他機器上會導致各種各樣的havok。

謝謝大家的幫助和建議,它真的幫助縮小了問題的範圍。托馬斯得到了接受的答案,因爲他的建議讓我指出了正確的方向。