簡體   English   中英

鏈接服務器“未找到數據源名稱且未指定默認驅動程序”錯誤

[英]Linked server “Data source name not found and no default driver specified” error

我使用 Microsoft OLE DB Provider for ODBC Drivers 創建了一個鏈接服務器:

EXEC master.dbo.sp_addlinkedserver @server = N'TEST', 
                                @srvproduct=N'Microsoft Visual FoxPro Driver', 
                                @provider=N'MSDASQL', 
                                @datasrc=N'TEST'


它仍然工作正常,我仍然使用 WINdows 身份驗證模式,但是當我創建登錄用戶並切換到 SQL 身份驗證時,它不起作用。
使用 SQL 身份驗證需要進行哪些更改?
在我啟用的提供者中:“嵌套查詢”、“允許處理”、僅級別零“。
錯誤是:

鏈接服務器“TEST”的 OLE DB 提供程序“MSDASQL”返回消息“[Microsoft][ODBC 驅動程序管理器] 連接字符串屬性無效”。 鏈接服務器“TEST”的 OLE DB 提供程序“MSDASQL”返回消息“[Microsoft][ODBC 驅動程序管理器] 未找到數據源名稱且未指定默認驅動程序”。 消息 7303,級別 16,狀態 1,第 1 行無法初始化鏈接服務器“TEST”的 OLE DB 訪問接口“MSDASQL”的數據源對象。

由於這些問題之一,可能會出現此錯誤消息。

  • sp_addlinkedserver指定的初始化參數之一( data_source, location, provider_string, or catalog )對於此提供程序不正確。

    驗證為鏈接服務器定義的這些參數,通過執行
    sp_addlinkedserver ,對於給定的提供程序是正確的。

    在這里也檢查sp_addlinkedsrvlogin

  • 發送給提供商的登錄名和密碼無效。

    通過sp_addlinkedsrvlogin驗證是否為鏈接服務器和當前 SQL Server 登錄配置了有效的登錄名和密碼。

通過這篇文章

更新

在鏈接服務器連接期間(例如,當它處理分布式查詢時),發送服務器提供登錄名和密碼以代表其連接到接收服務器。 要使此連接正常工作,您必須使用 SQL Server 系統存儲過程在鏈接服務器之間創建登錄映射。 -- 這里這里

您需要為鏈接服務器創建登錄映射,請參閱鏈接服務器的安全性

使用sp_addlinkedsrvlogin

創建或更新 SQL Server 本地實例上的登錄名與遠程服務器上的安全帳戶之間的映射。

sp_addlinkedsrvlogin [ @rmtsrvname= ] 'rmtsrvname' 
     [ , [ @useself= ] 'TRUE' | 'FALSE' | 'NULL'] 
     [ , [ @locallogin= ] 'locallogin' ] 
     [ , [ @rmtuser= ] 'rmtuser' ] 
     [ , [ @rmtpassword= ] 'rmtpassword' ] 

如果使用 Windows 身份驗證與鏈接服務器的連接工作正常,但不使用 SQL Server 身份驗證,我將查看鏈接服務器的屬性並確保選擇“安全”選項卡,身份驗證模式已啟用:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM