MS SQL Server 2012:网络访问配置不起作用

Posted

技术标签:

【中文标题】MS SQL Server 2012:网络访问配置不起作用【英文标题】:MS SQL Server 2012: network access configuration not working 【发布时间】:2013-12-09 02:37:28 【问题描述】:

我已在 64 位 Windows 7 上安装了带有高级服务的 Microsoft SQL Server 2012 Express。 在安装过程中,我选择将 SQL Server 实例配置为“默认实例”, 因此,我可以通过指定“localhost”使用 TCP/IT 连接到它, “(本地)”、“MyComputerName”或“.”在 Microsoft SQL Server 的“服务器名称:”字段中 Management Studio(在每种情况下,连接都显示在 SQL Server Management Studio 为“SQL Server 11.0.3128 - MyComputerName\MyUserName”。 但是,当我从控制面板的管理工具访问服务窗口时, 我可以看到安装的 SQL Server 实例正在使用连接名称运行 “NT 服务\MSSQLSERVER”。这对应于“实例 ID:MSSQLSERVER” 当我选择“默认实例”时,它会在安装过程中自动出现。 我想问的是:

鉴于此配置,为什么我不能通过指定 MSSQLSERVER 或其他方式进行连接 SQL Server Management Studio 中服务器名称字段中的 NT Service\MSSQLSERVER?怎么能 我可以使用这种替代连接机制(无需重新创建新的 SQL Server 实例)?

也许我不完全了解连接、连接字符串和连接类型 在 Windows 下工作,以及底层的 Windows 特定连接协议是什么。 也许有人可以指出这些细节并理清相关的任何令人困惑的问题 当有人知道 TCP/IP 但不太了解专有技术时会出现这些问题 Windows 网络协议。

谢谢。

【问题讨论】:

虽然 MS SQL Server 2012 LocalDB 是一个单独的可执行文件,但将 (localdb)\v11.0 指定为连接字符串也不起作用,尽管我在安装过程中选中了安装 LocalDB 的复选框。为什么是这样?谢谢。 好的,现在不确定,我什至没有重新启动我的系统,但现在在连接时指定 (LocalDb)\v11.0 作为服务器名称现在对我有用。 【参考方案1】:

我认为您对这两种连接身份验证类型感到困惑:

Windows 身份验证

SQL 服务器身份验证

要远程访问 SQL 服务器,您必须创建一个 SQL 用户帐户或从 windows认证用户。

Windows 身份验证: 假设你有一个域控制器,它有一个名为 MSSQL_USERS 的组,那么你必须在 SQL 服务器中添加这个组并授予对它的正确访问权限,之后你可以使用 windows 身份验证远程连接到 sql server属于该组的用户登录到 Windows。

SQL 服务器身份验证:MS SQL 服务器让您可以使用密码创建用户并授予他们访问所需访问权限、数据库、任务的权限...在 SQL 服务器实例上创建一个带有密码的帐户将提供您有权连接到该实例。

现在,如果您的实例名为“MSSQLSERVER”,那么您必须将其放在服务器名称\IP 地址之后 例如:192.168.3.9\MSSQLSERVER 或 SQL_SERVER\MSSQLSERVER

如果您在本地工作,则无需输入服务器名称。 如果服务器名称不起作用,那么您的 DNS 可能有问题,输入 IP 地址总是更安全,并且可以解决此类问题。


要启用与服务器的网络连接,您必须启用与服务器的远程连接:

1-右键单击服务器>转到属性

2- 转到连接并启用远程连接

在安装过程中,您必须为数据库引擎选择一种身份验证模式。有两种可能的模式:Windows 身份验证模式和混合模式,混合模式使您能够通过 SQL 身份验证和 Windows 身份验证两种类型连接到 SQL Server,如果您拥有的安装程序中没有该选项,那么您应该去到

服务器属性>安全选项卡>服务器身份验证

同样,当你安装 MS SQL 服务器时,你可以为 SQL 服务器管理员“sa”用户分配密码,但只有在启用混合模式时才会启用,因为 Windows 身份验证模式将禁用 SQL 服务器身份验证.

【讨论】:

感谢您的帖子。我正在使用 Windows 身份验证。但是,既然您已经指出了这种语法,我正在尝试通过指定 localhost\MSSQLSERVER 或 127.0.0.1\MSSQLSERVER 或 192.168.1.66\MSSQLSERVER (使用分配给我的盒子的 IP 地址)在 Windows 7 Home Premium 上进行本地连接由路由器)。不幸的是,它们都不起作用。这是为什么?我究竟做错了什么?正如我正在学习的那样,我想通过指定主机和服务器实例来进行连接。谢谢。 另外,你还没有解释为什么我无法连接到 SQL Server LocalDB 实例。 我还想知道:在安装 SQL Server 时,我的选择是使用 Windows 身份验证或使用 Windows 身份验证 + SQL Server 身份验证来配置对数据库引擎的身份验证。您似乎指出可以在不使用 Windows 身份验证的情况下使用 SQL Server 身份验证。鉴于安装程序不提供这种可能性,如何配置它?谢谢。 我还安装了一个名为 SQLEXPRESS(默认)的非默认实例,并且可以通过 MyComputerName\SQLEXPRESS 访问它。但是我似乎无法以这种方式访问​​默认服务器。如果有人知道原因,请告诉我。 请看我的补充【参考方案2】:

对我来说 - 我从过去安装了多个 SQL Server 实例,我试图检查旧版本的配置管理器。当我尝试在 Win+R 中打开“SQLSERVERMANAGER10.msc”时,这是 SQL Server 2008 的正确服务,它对我有用。

如果您尝试在 localhost 上进一步设置端口 1433 - 请尝试以下操作 - https://msdn.microsoft.com/en-IN/library/ms177440.aspx

【讨论】:

以上是关于MS SQL Server 2012:网络访问配置不起作用的主要内容,如果未能解决你的问题,请参考以下文章

在 C#.NET 中对 SQL Server 的 MS 访问

按字母数字字符串 MS SQL Server 2012 中的相似性排序

如何将从 ms 访问表中检索到的记录插入到 sql server 表中?

将 MS Access 连接到网络上的 SQL Server

MS Access 查询转换为 Sql Server

ms sql2012 能否安装在win2008 server