如何在Linux版SQL Server 2019中添加链接服务器提供程序?
在RHEL 8.6上为SQL Server 15.0.4261.1配置链接服务器提供程序
Linux版SQL Server不支持通过SSMS图形界面添加提供程序,必须依赖ODBC驱动并通过T-SQL完成配置,以下是具体步骤:
1. 确认并安装Microsoft ODBC驱动
链接服务器依赖ODBC Driver 17 for SQL Server,先检查是否已安装:
odbcinst -q -d -n "ODBC Driver 17 for SQL Server"
若无输出,执行以下命令安装:
sudo curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/mssql-release.repo sudo yum remove unixODBC-utf16 unixODBC-utf16-devel sudo ACCEPT_EULA=Y yum install msodbcsql17
2. 通过T-SQL注册链接服务器(含提供程序配置)
直接注册带提供程序的链接服务器,无需单独添加提供程序对象(Linux环境下提供程序通过驱动隐式关联):
USE [master] GO -- 注册链接服务器,使用MSDASQL通用ODBC提供程序 EXEC sp_addlinkedserver @server = N'YourLinkedServerName', -- 替换为你的链接服务器名称 @srvproduct = N'', @provider = N'MSDASQL', @provstr = N'DRIVER={ODBC Driver 17 for SQL Server};SERVER=目标SQL Server地址;DATABASE=目标数据库名;UID=目标用户名;PWD=目标密码' GO
如果需要单独注册SQL Server专用提供程序(MSOLEDBSQL),可执行:
USE [master] GO EXEC sp_addlinkedserver @server = N'SQLServerProvider', @srvproduct = N'SQL Server', @provider = N'MSOLEDBSQL', @datasrc = N'目标SQL Server实例地址' GO
3. 配置登录映射
为链接服务器添加登录凭证:
EXEC sp_addlinkedsrvlogin @rmtsrvname = N'YourLinkedServerName', -- 替换为你的链接服务器名称 @useself = N'False', @rmtuser = N'目标SQL Server用户名', @rmtpassword = N'目标SQL Server密码' GO
4. 验证链接有效性
执行测试查询确认链接正常:
SELECT * FROM [YourLinkedServerName].[目标数据库名].[dbo].[测试表名] GO
常见问题排查
- 若配置后无法连接,检查目标SQL Server的1433端口是否在防火墙中开放,网络是否可达。
- 确保SQL Server服务账号拥有访问目标数据库的权限。
- 建议安装SQL Server 15.0.4261.1对应的最新累积更新(CU),修复Linux环境下链接服务器的已知bug。
内容的提问来源于stack exchange,提问作者Eduardo Ramirez Roco
相关产品推荐
相关产品推荐

