代码之家  ›  专栏  ›  技术社区  ›  CodeRedick

在不使用SQL身份验证的情况下将链接服务器设置到不在域中的其他服务器?

  •  0
  • CodeRedick  · 技术社区  · 14 年前

    服务器A(sql2005)在我们的主域中,但服务器B(sql2000)只在Windows工作组中。我们不允许将其加入域,否则会发生坏事情…

    我们也无法在服务器B上启用SQL身份验证。

    我们有a的域帐户,并在服务器b上匹配本地帐户。

    我可以从本地PC或A使用SSMS和域登录连接到B,但我无法让链接服务器连接。

    你知道怎么做吗?

    2 回复  |  直到 6 年前
        1
  •  4
  •   Remus Rusanu    14 年前

    您的SQL Server A将根据正常的链接服务器身份验证规则在链接服务器连接上进行身份验证:

    这是你的两个选择,你施加限制来消除这两个选择。你必须回到画板上,检查你的要求和约束,因为现在你已经非常明确地把自己放在一个不可能的地方。一些替代方案是:

    • 使计算机B成为新域(真正的域),并使其信任域A
    • 将计算机B升级到SQL 2005并使用Service Broker同步数据,因为 certificate based authentication 可以跨越任何域边界。
    • 允许在服务器B上进行SQL身份验证
        2
  •  0
  •   Michael    6 年前

    试试这个:

    在命令提示下使用以下命令启动SQL Server Management Studio:

    runas /netonly /user:targetdomain\targetuser "C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\Ssms.exe"
    

    将上面的TargetDomain替换为远程SQL Server所在的AD域,并将TargetUser替换为具有SQL权限的AD用户名。另外,到上面的SQL Management Studio的路径可能在您的计算机上有所不同-请相应地替换您的路径。

    它将提示输入广告用户密码。密码必须是键入的,不容易编写脚本(现在不讨论,有一些vbscript解决方案可以绕过密码问题)。

    上面所做的是在目标域上以广告用户的身份运行本地ManagementStudio程序。现在,您可以使用当前登录的安全上下文创建常规的“SQL Server”链接服务器……但我们在愚弄它,认为您在远程域上。

    相当圆滑,嗯!

    有一些明显的缺点,但它能完成工作。

    ——埃里克