使用 UDL 文件测试与 SQL Server 的 OLE DB 连接

适用范围:SQL Server

注意

在开始故障排除之前,请检查 先决条件 并浏览清单。

本文介绍如何创建通用数据链接(UDL)文件,并使用不同的提供程序通过该文件测试与 SQL Server 实例的连接。

创建 UDL 文件

注意

UDL 文件使你能够测试对象链接和嵌入数据库(OLE DB)提供程序与独立于完整应用程序的任何后端数据库的连接。 保存 UDL 文件会生成格式正确的连接字符串,可用于帮助生成应用程序的连接字符串或检查如何设置不同的属性。 若要获取字符串,请在记事本中打开该文件。

若要创建 UDL 文件以测试 OLE DB 提供程序,请执行以下步骤:

  1. 若要在文件资源管理器中显示文件扩展名,请执行以下步骤:

    1. 选择“开始”,然后输入文件资源管理器选项

    2. 选择 “视图 ”选项卡,取消选中“ 隐藏已知文件类型 的扩展名”选项,然后选择“ 确定”。

  2. 导航到要在其中创建 UDL 文件的文件夹。 例如 ,C:\temp

  3. 创建新的文本文件(如 sqlconn.txt),然后将扩展名从 .txt 重命名为 .udl。 (选择 对有关更改文件扩展名的警告消息是的

    还可以使用以下 PowerShell 脚本在 %temp% 文件夹中创建 sqlconn.udl

    clear
    $ServerName = "(local)"
    $UDL_String = "[oledb]`r`n; Everything after this line is an OLE DB initstring`r`nProvider=MSOLEDBSQL.1;Integrated Security=SSPI;Persist Security Info=False;User ID=`"`";Initial Catalog=`"`";Data Source=" + $ServerName + ";Initial File Name=`"`";Server SPN=`"`";Authentication=`"`";Access Token=`"`""
    Set-Content -Path ($env:temp + "\sqlconn.udl") -Value $UDL_String -Encoding Unicode
    
    #open the UDL
    Invoke-Expression ($env:temp + "\sqlconn.udl")
    

使用 SQL Server OLE DB 驱动程序测试连接

Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL)是最新的 SQL Server OLE DB 驱动程序。 驱动程序具有新功能,例如 TLS 1.2 和 1.3、 MultiSubnetFailover 和 Azure 身份验证方法(Microsoft Entra ID)。 建议将此驱动程序用于较新的 SQL Server 数据库。

Microsoft OLE DB Provider for SQL Server (SQLOLEDB )是旧版 OLE DB 连接提供程序。 它内置于 Windows 中,可以连接到未配置为需要 TLS 1.2 或 1.3 通道绑定的任何 SQL Server 版本。

若要使用适用于 SQL Server 的 Microsoft OLE DB 驱动程序或提供程序测试连接,请执行以下步骤:

  1. 打开 UDL 文件。

  2. 选择“ 提供程序 ”选项卡,选择应用程序中使用的 OLE DB 驱动程序或提供程序,然后选择“ 下一步”。

  3. 在“连接”选项卡上,指定网络协议、完全限定的域名(FQDN)和“选择”或输入服务器名称下的端口号。 例如,tcp:SQLProd01.contoso.com,1433

    注意

    这样一来,输入服务器名称和端口就避免了可能会干扰连接的常见问题(例如 SQL Server 浏览器服务问题)。

  4. “连接 ”选项卡上输入其他属性。

    注意

    大多数连接测试都不需要输入数据库名称。

  5. 选择“测试连接”。

还可以选择其他选项卡并浏览其他驱动程序设置。 连接测试完成后,选择“确定将连接字符串保存到文件。

使用 Microsoft OLE DB Provider for ODBC Drivers 测试连接

若要使用 Microsoft OLE DB Provider for ODBC Drivers 测试 Open Database Connectivity (ODBC) 驱动程序,请执行以下步骤:

  1. 打开 UDL 文件。

  2. 选择“下一步”ODBC 驱动程序>的提供程序>Microsoft OLE DB 提供程序。

  3. 在“连接”选项卡上,可以使用下列方法之一指定数据源,然后输入其他属性。

    • “使用数据源名称 ”字段中输入一个值。

    • 输入无 DSN 连接字符串,如下所示Driver={ODBC Driver 17 for SQL Server};Server=SQLProd01;Database=Northwind;Trusted_Connection=Yes

  4. 选择“测试连接”。

在 64 位计算机上测试 32 位提供程序

若要测试 64 位操作系统中 32 位提供程序的连接,请执行以下步骤:

  1. 命令提示符 窗口中,运行以下命令以打开 32 位 命令提示符

    %windir%\SysWoW64\cmd.exe
    
  2. 运行以下命令以打开 UDL 文件:

    C:\temp\test.udl
    
  3. 如果在“提供程序”选项卡上看到Microsoft Jet 4.0 OLE DB 提供程序,则已成功加载 32 位对话框,现在可以选择 32 位提供程序来测试连接。

启动 UDL 文件

双击 UDL 文件以启动它。 下面介绍了启动 UDL 文件时使用的基础过程。

UDL 文件 UI 由 OLEDB32.DLL 提供,托管在 RUNDLL32.EXE中。

  • 对于 32 位操作系统,或在 64 位操作系统上的 64 位提供程序,请使用以下命令(假设 C:\temp\test.udl):

    Rundll32.exe "C:\Program Files\Common Files\System\OLE DB\oledb32.dll",OpenDSLFile C:\temp\test.udl

  • 对于 64 位操作系统上的 32 位提供程序,请使用以下命令:

    C:\Windows\SysWOW64\Rundll32.exe "C:\Program Files (x86)\Common Files\system\Ole DB\oledb32.dll",OpenDSLFile C:\temp\test.udl

.udl 文件扩展名映射到第一个命令。 对于64位操作系统上的32位提供程序,可以通过运行32位命令提示符来简化操作,然后运行START C:\TEMP\TEST.UDL以测试32位提供程序。 (可选)可以创建使用 32 位命令的文件扩展名映射。

创建 32 位 UDL32 文件扩展名映射

如果在 64 位作系统上经常使用 32 位提供程序,则可以映射新的文件扩展名(例如 .udl32),以使用以下步骤启动 32 位 UDL 对话框。

重要

本部分、方法或任务包含说明如何修改注册表的步骤。 如果您错误地修改注册表,可能会出现严重问题。 因此,请确保仔细执行这些步骤。 出于防范目的,请在修改之前备份注册表,以便在出现问题时还原注册表。 有关如何备份和恢复注册表的更多信息,请参见如何在 Windows 中备份和恢复注册表

  1. 将以下脚本复制到记事本,并将其另存为 udl32.reg

    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\.UDL32]
    @="ft000001"
    
    [HKEY_CLASSES_ROOT\ft000001]
    @="Microsoft Data Link 32"
    "BrowserFlags"=dword:00000008
    "EditFlags"=dword:00000000
    
    [HKEY_CLASSES_ROOT\ft000001\shell]
    @="open"
    
    [HKEY_CLASSES_ROOT\ft000001\shell\open]
    
    [HKEY_CLASSES_ROOT\ft000001\shell\open\command]
    @="C:\\Windows\\SysWOW64\\Rundll32.exe \"C:\\Program Files (x86)\\Common Files\\system\\Ole DB\\oledb32.dll\",OpenDSLFile %1"
    
    [HKEY_CLASSES_ROOT\ft000001\shell\open\ddeexec]
    
  2. 双击 .reg 文件以创建注册表项,这有助于自动启动 UDL32 文件。

  3. 创建扩展名 为 .udl32 的文件。 例如 ,C:\temp\test.udl32

  4. 双击 test.udl32 启动 32 位 UDL 对话框。 例如,你可能会看到如下所示的对话框:

    屏幕截图显示了 32 位 UDL 对话框的示例。

排查连接问题的提示

可以使用以下方法来检查连接失败的原因。

  • 更改提供程序。
  • 更改协议。 例如,tcp:np:lpc:
  • 使用或不使用完整域后缀或仅使用 IP 地址测试连接。
  • 删除端口号并使用实例名称测试 SQL Server Browser 服务。

对于上述每个方法,如果一个组合有效,另一个组合失败,它可能会给出问题线索。 例如,如果使用第二种方法(如果lpc:有效且tcp:不起作用)请尝试在SQL Server 配置管理器启用 TCP 协议。

另请参阅

通用数据链接 (UDL) 配置

注意

如果本文未解决问题,可以检查 SQL Server 中的连接问题疑难解答 以获取更多帮助。