代码之家  ›  专栏  ›  技术社区  ›  Jonathan Beerhalter

如何阻止与SQL Server 2008的连接

  •  1
  • Jonathan Beerhalter  · 技术社区  · 14 年前

    这是一个相当具体的问题,但我对可能发生的事情不知情。

    我们将在我们称之为servera的服务器上运行SQL Server 2008。我们可以在servera中RDP,我们可以ping servera。如果我们RDP进入Servera,我们就可以打开SQL Server Management Studio并连接到运行在Servera上的所有数据库实例。

    然而,

    我们无法从网络上的其他任何地方连接到这些实例中的任何一个。我不认为这是网络问题,因为如果我可以RDP和ping服务器A,那么网络就可以了。我不认为这是权限问题,因为如果我是RDP,我可以连接到所有实例。几乎就像我打开了一些秘密的安全设置,防止来自本地主机以外的任何IP的连接,或者类似的。

    是否存在这样的安全设置?我不知道如何进入这种状态,即使我想,所以我不知道如何摆脱它。

    4 回复  |  直到 14 年前
        1
  •  2
  •   Thorin    14 年前

    SQL Server允许通过四种不同的协议进行连接:

    • 共享内存
    • 命名管道
    • TCP/IP
    • 通孔

    其中,只有使用默认设置安装了SQL Server时才启用共享内存。

    查看协议 :

    • RDP到数据库服务器
    • 打开SQL Server配置管理器(SSCM): 启动->所有程序->Microsoft SQL Server 2008->配置工具->SQL Server配置管理器
    • 在SSCM中,展开SQL Server 2008网络配置节点
    • 选择 [实例名]的协议 结点(节点) 实例名称 是数据库实例的名称;我的名为sqlexpress)。

    共享内存只能在数据库服务器上本地工作。这很可能是在RDP到服务器并打开SQL Server Management Studio(SSMS)时使用的协议。

    TCP/IP通常在从远程计算机连接到数据库服务器时使用。 TCP/IP使用端口 缺省端口 对于SQL Server是 一千四百三十三 . 如果数据库服务器上安装了防火墙,则可能需要打开此端口。

    启用TCP/IP协议 :

    • 双击 TCP/IP 右窗格中的协议
    • 改变 启用 选择“是”,然后单击“确定”
    • 需要重新启动SQL Server服务

    重新启动SQL Server服务 :

    • 选择 SQL Server 2008服务 结点
    • 右击 SQL Server([实例名]) 服务和选择 重新启动

    现在,您应该能够将SSM从远程计算机连接到数据库服务器上运行的SQL Server。

        2
  •  2
  •   Chase Florell    14 年前

    防火墙是否阻塞端口1433?

        3
  •  1
  •   Matt    14 年前

    确保SQL浏览器服务正在运行。

        4
  •  1
  •   Daniel Renshaw    14 年前

    使用服务器A上的SQL Server配置管理器确保启用了TCP/IP网络协议(默认情况下禁用该协议)。它还需要在客户机网络配置中启用,但默认情况下在那里启用。