首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >远程链接服务器

远程链接服务器
EN

Database Administration用户
提问于 2014-10-01 10:37:12
回答 1查看 2.3K关注 0票数 2

我有一个SQL Server 2008R2,我想远程连接到SQLServer2012SP1,为此我将被告知:

代码语言:javascript
复制
IP: 12.34.56.78
Login: john
Password: pw1
Database: TESTDB
Table: test_table

远程数据库在我的局域网之外,但是防火墙是在双方配置的,所以我可以通过直接从我的数据库服务器打开SSMS来查询它。我执行以下任务:

代码语言:javascript
复制
EXEC sp_addlinkedserver '12.34.56.78', 'SQL Server';
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = [12.34.56.78], @locallogin = NULL , @useself = N'False', @rmtuser = 'john', @rmtpassword = 'pw1'

到目前为止,没有出现错误,而且我可以在SSMS中看到链接的服务器,“”是成功的,但我不能查询它。

代码语言:javascript
复制
select * from [12.34.56.78].TESTDB.test_table

返回此错误:

代码语言:javascript
复制
Msg 208, Level 16, State 1, Line 1
Invalid object name '12.34.56.78.TESTDB.test_table'.

从Internet定义链接服务器的正确方法是什么,如果可能的话,为它指定一个很好的名称(而不是IP引用它)?我应该使用SQLNCLI作为提供程序吗?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2014-10-01 20:21:46

查询中缺少架构名称。应该是连系_服务器.数据库_名字.图式_名字.对象_名字.所以在你的例子中,12.34.56.78.TESTDB.这里应该是您缺少的模式.test_table

这是一个公共IP地址。希望是防火墙的地址将流量路由到Server!如果它有一个DNS名称分配给它,那么你可以使用它。或者您可以创建一个同义词,然后忘记输入这个长名称。

代码语言:javascript
复制
CREATE SYNONYM [schema].[synonym_name] FOR [LINKED_SERVER].[DB_NAME].[SCHEMA_NAME].[OBJECT_NAME]
票数 5
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/78134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档