SQL Server 2000 创建到 SQL Server 2008 的链接服务器
在 SQL Server 2000 中,我尝试创建一个到 SQL Server 2008 的链接服务器。我尝试过的所有操作都会引发这样或那样的错误。
在 SQL Server 2000 企业管理器中,我:
- 右键单击服务器的安全节点下的链接服务器,然后选择新建链接服务器...并将链接命名为“SQL2008R2”
- 我选择“其他数据源”单选按钮,因为我不这样做认为 SQL Server 2000 可以本机连接到 2008。
- 我在提供程序名称字段中选择“SQL Server Native Client 10.0”,在产品名称字段中键入“SQL2008R2”,输入“VIRTUALXP-62910\SQLEXPRESS”(服务器名称和命名实例名称)在“数据源”字段中,将“提供程序”字符串留空,然后在“目录”字段中键入数据库名称“RWUtils”。
- 在安全选项卡上,我键入“Link”作为本地登录名和远程用户,然后输入密码。对于上面未列出的登录,我选择“Not be made”单选按钮。我之前在两台服务器上设置了一个“链接”用户,使用相同的密码,可以访问正确的数据库。
- 我单击“确定”来创建链接。 SQL2008R2 链接已创建。
当我展开刚刚创建的链接并单击“表”时,出现错误,
错误 7416:访问远程 服务器被拒绝,因为没有 登录映射存在。
谁能告诉我我做错了什么或者成功创建此链接的正确步骤顺序或 T-SQL 是什么?
非常感谢。
In SQL Server 2000, I'm trying to create a linked server to SQL Server 2008. Everything I've tried raises errors of one flavor or another.
In SQL Server 2000 Enterprise Manager, I:
- Right-click Linked Servers under the server's Security node, then choose New Linked Server... and name the link "SQL2008R2"
- I choose the "Other data source" radio button because I don't think SQL Server 2000 can natively connect to 2008.
- I choose "SQL Server Native Client 10.0" in the Provider name field, type "SQL2008R2" in the Product name field, enter "VIRTUALXP-62910\SQLEXPRESS" (Servername and named instance name) in the Data source field, leave Provider string blank, and type the database name "RWUtils" in the Catalog field.
- On the security tab, I type "Link" as the local login and as the Remote user, and enter the password. I choose the "Not be made" radio button for logins not listed above. I previously set up a "Link" user on both servers, with the same password, with access to the right databases.
- I click OK to create the link. The SQL2008R2 link is created.
When I expand the link I just created and click on Tables, I get the error,
Error 7416: Access to the remote
server is denied because no
login-mapping exists.
Can anyone tell me what I'm doing wrong or what the correct sequence of steps or T-SQL is to create this link successfully?
Thanks much.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我刚刚第一次这样做(在看到你的问题之后)并且它有效 - 从 SQL 2000 标准 32 位(默认实例)到 SQL 2008 R2 64 位上的命名实例。
使用与上面类似的步骤:
其他说明:我在“服务器选项”选项卡上采用了默认值,即“数据访问”、“RPC”和“RPC Out”全部选中。
另一个方向:我之前让它从 SQL 2008 R2 链接服务器到 SQL 2000 的另一个方向工作。这需要这个: http://blog.raffaeu.com/archive/2008/06/19/sql-2005-and -linked-server-cannot-obtain-the-schema-rowset.aspx。
I just did this for the first time (after seeing your question) and it worked - going from SQL 2000 Standard 32-bit (default instance) to a named instance on SQL 2008 R2 64-bit.
Using similar steps to what you have above:
Other notes: I took the defaults on the Server Options tab, which are "Data Access", "RPC", and "RPC Out" all checked.
The other direction: I previously had it working the other direction from SQL 2008 R2 linked server to SQL 2000. That required this: http://blog.raffaeu.com/archive/2008/06/19/sql-2005-and-linked-server-cannot-obtain-the-schema-rowset.aspx.
我已使用以下步骤和配置选项:
SqlServerEnterpriseManager\Security\Linked Servers\New Linked Server
测试中使用的 Qry:
从 [链接服务器名称].[数据库].dbo.[表]中选择 *
I have use this steps and configuration options:
SqlServerEnterpriseManager\Security\Linked Servers\New Linked Server
Qry used in the test:
select * from [linkedservername].[database].dbo.[table]