隨着Windows 2003的結束壽命數據下個月若隱若現,我遷移遺留應用程序到Windows 2008。這一切與我們聯繫的例外了出奇順利索引服務。無法查詢索引服務與SQL認證用戶
我們有兩臺服務器,一臺運行SQL 2008的數據庫服務器和一臺Web服務器。我們的網絡應用程序允許用戶搜索文檔商店。具體的過程:在查詢
- 用戶類型的Web應用程序
- Web應用程序將查詢發送到數據庫服務器
- 查詢引用的Web應用程序,鏈接數據庫服務器,並加載檢索路徑成臨時表
- 數據庫服務器連接到SQL服務器
- 數據庫服務器將結果返回給Web應用程序
- 該網站applicati對另一個表的路徑向用戶顯示結果。
Web應用程序通過SQL驗證到數據庫服務器登錄進行查詢,但它失敗,此錯誤:當我試圖執行查詢時
An error occurred while preparing the query "SELECT PATH FROM "10.0.1.89".MyCatalog..SCOPE('DEEP TRAVERSAL OF "C:\Documents"') WHERE (FREETEXT(Contents, 'introduction')) OR (FREETEXT(FileName, 'introduction'))" for execution against OLE DB provider "MSIDXS" for linked server "Filesystem".
顯示同樣的錯誤登錄通過SSMS的數據庫服務器上的這個用戶,但也有一些額外的信息:
OLE DB provider "MSIDXS" for linked server "Filesystem" returned message "Invalid catalog name 'MYCATALOG'. SQLSTATE=42000 ".
Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "MSIDXS" for linked server "Filesystem" reported an error.
Access denied.
Msg 7321, Level 16, State 2, Line 1
An error occurred while preparing the query "SELECT PATH FROM "10.0.1.89".MyCatalog..SCOPE('DEEP TRAVERSAL OF "C:\Documents"') WHERE (FREETEXT(Contents, 'introduction')) OR (FREETEXT(FileName, 'introduction'))" for execution against OLE DB provider "MSIDXS" for linked server "Filesystem".
然而,當我登錄到我的Windows身份驗證帳戶SSMS,我能夠執行相同的查詢並返回結果。我的用戶名和密碼必須是相同的Web服務器上的帳戶 - 如果我在Web服務器上修改密碼,則會引發錯誤,但不是同一個:
OLE DB provider "MSIDXS" for linked server "Filesystem" returned message "Unspecified error".
OLE DB provider "MSIDXS" for linked server "Filesystem" returned message "Invalid catalog name 'MYCATALOG'. SQLSTATE=42000 ".
Msg 7321, Level 16, State 2, Line 1 An error occurred while preparing the query "SELECT PATH FROM "10.0.1.89".MyCatalog..SCOPE('DEEP TRAVERSAL OF "C:\Documents"') WHERE (FREETEXT(Contents, 'introduction')) OR (FREETEXT(FileName, 'introduction'))" for execution against OLE DB provider "MSIDXS" for linked server "Filesystem".
我創建的鏈接服務器此查詢,這似乎符合遺留系統的配置:
EXEC sp_addlinkedserver FileSystem, 'Index Server', 'MSIDXS', 'Web';
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'FileSystem', @locallogin = NULL, @useself = N'False', @rmtuser = N'CatalogUser', @rmtpassword = N'xxx';
我創建了一個名爲CatalogUser Web服務器上的用戶,我設置其密碼是與上面相同的查詢。
但是,當我使用Windows身份驗證進行連接時,此信息似乎被忽略,而是使用我的Windows身份驗證數據。如果我將密碼更改爲任何內容,查詢仍然成功。
我試過讓CatalogUser作爲服務帳戶登錄,並沒有任何效果。
兩臺機器是不是一個域,但也不是兩個Windows 2003計算機,這工作完全正常。
我一定是錯過了兩者之間的設立的東西。不幸的是,這些機器都設置了長人開始將文檔這樣的東西之前,所以我不知道丟失的步驟是什麼。
沒有這個問題在互聯網上,這可能是由於軟件的年齡非常多的信息,所以起碼我們可以開始在這裏建立一個知識庫。我想知道現在是否有更多的人在使用該軟件時遇到問題,生命即將到來。