我在寫一個需要連接到SQL服務器以檢索一些信息的Windows服務。但是,服務器不允許我連接:login failed for user [domain/username]
。奇怪的是,SSMS內部的一切都完好無損。我可以登錄,查詢數據庫,並且一切都完美無缺。只有通過Windows服務纔會拋出該錯誤。對於Windows服務SQL「登錄失敗,用戶[用戶名]」錯誤,但SSMS登錄工程
僅供參考,這裏是我使用的連接字符串:
Data Source=sqlserveraddresshere;Initial Catalog=databasenamehere;User ID=domain\username;Password=password`
我懷疑,這是相關的,但是當我嘗試使用集成安全性它讓我的計算機名稱,而不是我自己的用戶名。我99%肯定這是因爲我們的反病毒和監控軟件欺騙了我的Windows會話管理員用戶來完成其工作。在任何情況下,只要輸入正確的用戶名和密碼應該工作不管,對不對?
我看了一些涉及相同錯誤的其他問題,但他們都沒有關係。從我可以告訴誰可以通過SSMS進入的所有人都可以通過代碼訪問他們的SQL服務器。這是我能找到的最類似的問題,雖然它沒有多大幫助: Can't connect to SQL Server: "Login failed for user "."
另外,在你問之前,我已經檢查過TYPOS。其實,我甚至試圖使用其他用戶的帳戶,以確保我的權限沒有什麼奇怪的事情發生。如果你需要我發佈任何代碼,請告訴我。謝謝你的幫助!
UPDATE:
我改變了賬戶服務和切換回IntegratedSecurity = true
。這似乎是有所改變,因爲現在我收到一個稍微不同的錯誤:
Cannot open database "mydatabase" requested by the login. The login failed. >Login failed for user 'MYDOMAIN\myUserName'.
您可以檢查SQL事件日誌(在Management Studio中,展開服務器,展開管理,展開SQL Server日誌),併爲我們提供失敗登錄的完整錯誤?它應該包含錯誤編號,嚴重性和狀態。 –
檢查SQL事件日誌幫助我瞭解了一些新內容:我嘗試訪問的服務器僅配置了Windows身份驗證。但是,當我使用WA時登錄仍然失敗,因爲它仍然發送我的計算機名稱而不是帳戶名稱。我會做更多的研究來嘗試解決這個問題。 以下是完整的錯誤(帶有匿名憑據):用戶'DOMAIN \ MACHINE_NAME $'失敗。原因:基於令牌的服務器訪問驗證因基礎結構錯誤而失敗。檢查以前的錯誤。 [客戶端:10.1.0.188] – VVander
錯誤是否在您發佈的消息上面有嚴重性**和**狀態**值? –