• SQL2008和SQL2000可以跨服务器连接查询的测试实例


    测试目的: SQL2008 和 SQL2000 是否可以跨服务器连接查询

     

    -- 测试环境:

    --A 虚拟机 XP ( IP : .0.0.213 )安装 SQL2000 个人版,并安装 SP4 补丁。

    --Microsoft SQL Server  2000 - 8.00.2039 (Intel X86)

    --   May  3 2005 23:18:38  

    --Copyright (c) 1988-2003 Microsoft Corporation

      --Personal Edition on Windows NT 5.1 (Build 2600: Service Pack 3)

     

    --B 虚拟机 windows2008 ( IP : .0.0.211 )安装 SQL2008 。

    --Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)

    --  Jul  9 2008 14:43:34

    --  Copyright (c) 1988-2008 Microsoft Corporation

    --  Enterprise Edition on Windows NT 6.0 <X86> (Build 6001: Service Pack 1)

     

    --B 虚拟机 windows2008 ( IP : .0.0.211 )安装 SQL2000 企业版,命名实例。

    --Microsoft SQL Server  2000 - 8.00.194 (Intel X86)  

    --Aug  6 2000 00:57:48  

    --Copyright (c) 1988-2000 Microsoft Corporation 

    --Enterprise Edition on Windows NT 6.0 (Build 6001: Service Pack 1)

     

     

     

    -- 测试步骤:

    -- (从 SQL2008 到 SQL2000 )

    --=====================================================================

    ---- 在 B 机器( OS 2008 )上建立跨服务器连接

    sp_addlinkedserver '10.0.0.213' , 'SQL Server'

     

    -- 在 B 机器( OS 2008 )上查询连接

    select server_id , name from sys . servers where right( name , 3)= '213'

     

    --result:

    server_id    name

    ----------- ------------------------

    7           10.0.0.213

     

    ( 1 行受影响 )

     

     

    -- 在 B 机器( OS 2008 )上连接查询 ( 用 SA 登录,不能用 windows 身份验证 )

    select top 1 OrderID , CustomerID , EmployeeID , OrderDate from [10.0.0.213] .Northwind . dbo . Orders

     

    --result:

    OrderID      CustomerID EmployeeID   OrderDate

    ----------- ---------- ----------- -----------------------

    10248       VINET       5           1996- 07- 04 00: 00: 00.000

     

    ( 1 行受影响 )

     

    --( 用 windows 身份验证登录查询会报如下错误 )

    消息 18452 ,级别 14 ,状态 1 ,第 0 行

    用户 '(null)' 登录失败 。原因 : 未与信任 SQL Server 连接相关联 。

     

     

    -- (从 SQL2000 到 SQL2008 )

    --=====================================================================

    -- 在 A 机器( OS XP )上建立跨服务器连接

    sp_addlinkedserver '10.0.0.211' , 'SQL Server'

     

    (所影响的行数为 1 行 )

     

     

    (所影响的行数为 1 行 )

     

    -- 在 A 机器( OS XP )上查询连接

    select * from sysservers

    1249   10.0.0.211 SQL Server

     

    -- 在 A 机器( OS XP )上连接查询 ( 用 SA 登录,不能用 windows 身份验证 )

    select top 1 * from [10.0.0.211] . AdventureWorks2008 . dbo . AWBuildVersion

     

    --result:

    1   10.00.80404.00    2008- 04- 04 00: 00: 00.000  2008- 04- 04 00: 00: 00.000

     

    --( 用 windows 身份验证登录查询会报如下错误 )

    服务器 : 消息 7411 ,级别 16 ,状态 1 ,行 1

    服务器 '10.0.0.211' 没有为 DATA ACCESS 的目的而配置 。

     

     

    -- (从 SQL2000 个人版到 SQL2000 企业版命名实例)

    --=====================================================================

    -- 在 A 机器( OS XP )上建立跨服务器连接

    sp_addlinkedserver '10.0.0.211/SQL2k' , 'SQL Server'

     

    (所影响的行数为 1 行 )

     

     

    (所影响的行数为 1 行 )

     

    -- 在 A 机器( OS XP )上查询连接

    select * from sysservers

    1249   10.0.0.211 SQL Server

    1249   10.0.0.211/SQL2k   SQL Server    -- 新增命名实例

     

    -- 在 A 机器( OS XP )上连接查询

    select top 1 * from [10.0.0.211/SQL2k] . Northwind . dbo . Orders

     

    --result :

    服务器 : 消息 17 ,级别 16 ,状态 1 ,行 1

    SQL Server 不存在或拒绝访问 。

     

    -- 原因为 B 虚拟机 windows2008 ( IP : .0.0.211 )安装 SQL2000 企业版,未安装 SP4 补丁。

    -- 下载 SQL2000SP4

    http: // download . microsoft . com / download / 9/ b / f / 9bff6646 - 2cdb - 4069- ada0 -548be9cb9338 / SQL2000 - KB884525 - SP4 - x86 - CHS . EXE

    在 Windows2008 中安装 SQL2K SP4 补丁提示程序与系统不兼容 。

     

     

    -- (从 SQL2000 企业版命名实例到 SQL2000 个人版)

    --=====================================================================

    -- 在 B 机器( OS 2008 )上建立跨服务器连接

    sp_addlinkedserver '10.0.0.213' , 'SQL Server'

     

    (所影响的行数为 1 行 )

     

    (所影响的行数为 1 行 )

     

    -- 在 B 机器( OS 2008 )上查询连接

    select * from sysservers

    1249   10.0.0.213 SQL Server

     

     

    -- 用 windows 身份验证登录查询(提示错误如下)

    select top 1 * from [10.0.0.213] . Northwind . dbo . Orders

     

    服务器 : 消息 18452 ,级别 14 ,状态 1 ,行 1

    用户 '(null)' 登录失败 。原因 : 未与信任 SQL Server 连接相关联 。

     

    -- 用 sa 身份验证登录查询(但 SA 密码不相同时提示错误如下)

    select top 1 * from [10.0.0.213] . Northwind . dbo . Orders

    服务器 : 消息 18456 ,级别 14 ,状态 1 ,行 1

    用户 'sa' 登录失败 。

     

    --> 此时修改 B 虚拟机中的 SQL2000 企业版的 SA 密码与 A 虚拟机中 SQL2000 的 SA 密码一致。

    -- 用 sa 身份验证登录查询,结果显示正常。

    select top 1 * from [10.0.0.213] . Northwind . dbo . Orders

     

    --result :

    10248  VINET   5   1996- 07- 04 00: 00: 00.000  1996- 08- 01 00: 00: 00.000  1996- 07-16 00: 00: 00.000  3    32.3800    Vins et alcools Chevalier    59 rue de l 'Abbaye  Reims  NULL   51100  France'

     

     

    总结 : SQL2008 和 SQL2000 可以跨服务器进行连接查询。 所有数据库的远程连接 dbo 的方式必须建立在 SA 密码相同的基础上 ,否则容易产生无法连接的情况 。

    以上文档用实例测试了 windows2008 系统中 SQL2008 企业版和 XP 系统中 SQL2000 的跨服务器连接查询 。

     

    关于 SQL2005 的跨服务器远程连接查询 ,详见 http: // blog . csdn . net / claro / archive / 2009/ 07/03/ 4317900.aspx

    转自:http://blog.csdn.net/claro/article/details/5710808

  • 相关阅读:
    比较两个树是否相同
    将一个字符串转换成一个整数
    求数组中第一个重复数字
    Redis之哨兵机制(sentinel)——配置详解及原理介绍
    ==和equals的区别
    求一个数的立方根
    检测应用版本
    【转】UITableViewCell自适应高度 UILabel自适应高度和自动换行
    iOS7中Cell高度 Label高度自适应
    MarsEdit 快速插入代码
  • 原文地址:https://www.cnblogs.com/sheseido/p/3326695.html
Copyright © 2020-2023  润新知