无法登录SQL Server 2008 R2管理工具中的服务器

4
我有一个 SQL Server 2008 R2 实例,可以使用 sa 用户登录。但是我想定义另一个用户(administrator)用于使用 SQL Server Management Studio 登录,所以我执行了以下步骤:
  • 作为 sa 用户登录到 Management Studio。
  • 右键单击数据库名称。
  • 点击属性。
  • 然后在权限下,选择所需的用户名(administrator)。
  • 并授予他所有权限。

但是当我尝试使用 administrator 登录时,出现以下错误:

用户“administator”登录失败,错误代码 18456。

请问有人能够提供可能的问题原因吗?

2个回答

7
如果服务器遇到阻止登录成功的错误,客户端将显示以下错误消息。
Msg 18456, Level 14, State 1, Server <server name>, Line 1
Login failed for user '<user name>'
  • 这通常意味着您的连接请求已成功接收到您指定的服务器名称,但由于多种原因,该服务器无法授予您访问权限并引发错误:18456。
  • 有时,此事件ID还提供状态1,但实际上并没有什么用处,因为出于安全原因,除非您可以检查服务器上的日志记录,否则任何错误都会转换为状态1。
  • Microsoft提供的信息框很少有用,因此以下是一些解释您收到此错误的原因。

enter image description here

无效的用户ID:SQL Server无法在您尝试获取的服务器上找到指定的UserID。最常见的原因是这个userID没有被授予在服务器上的访问权限,但这也可能只是一个简单的打字错误或者您不小心尝试连接到其他服务器(如果您使用超过一个服务器,则这很典型)。

密码错误:密码错误或者只是一个笔误。请记住,这个用户名在不同的服务器上可能有不同的密码。

不太常见的错误:用户ID在服务器上可能已被禁用。提供了Windows登录以进行SQL身份验证(改为Windows身份验证。如果您使用SSMS,您可能需要以不同的用户身份运行才能使用此选项)。密码可能已过期,还可能有其他原因……

18456状态1解释:通常Microsoft SQL Server会给您错误状态1,实际上除了您有18456错误之外并没有什么意义。状态1用于隐藏实际状态,以保护系统,这对我来说是有道理的。下面是所有不同状态的列表,有关检索准确状态的更多信息,请访问在SQL Server 2005中了解“登录失败”(错误18456)错误消息。

未启用SQL身份验证:如果您首次在SQL Server实例上使用SQL登录,则由于服务器属性(安全部分)中仅设置了Windows身份验证,很常见发生错误18456。

要访问服务器属性, - 打开SQL Server Management Studio,转到对象资源管理器窗格(如果无法看到,则使用视图)。 - 使用连接按钮连接到您的服务器数据库引擎。一旦连接,您将在对象资源管理器中看到它。 - 右键单击服务器,然后单击属性。将出现服务器属性窗口。

enter image description here

请参见下面的屏幕截图,可能会导致SQL登录失败

enter image description here

您应该将服务器身份验证设置为SQL Server Windows身份验证

enter image description here

要解决此错误,请按照以下步骤在安装了SQL Server 2005的计算机上进行操作。

  • 在操作系统中创建一个新用户,用户名和密码与 SQL Server 2008 相同,并授予管理员权限。
  • 在 SQL Server 数据库中,通过展开 DatabaseNode >> Security >> Login >> - Create New User 创建一个新用户,并选择 Windows Authentication 单选按钮以添加此新用户。- 只能使用所选的 Windows Authentication 添加该用户,这是操作系统的用户登录。
  • 完成上述两个步骤后,使用 Windows Authentication 从 SQL Server 2008 连接到 SQL Server 2005 将成功连接。

如何修复?请查看此链接视频 SQL Server 和 Windows Authentication Mode 页面。

来源


哇,非常感谢。我没有意识到我尝试连接的开发实例只支持Windows身份验证。非常好的解决方案。 - Perry Tew

3

您需要添加一个服务器登录

  1. 使用SSMS以sa身份连接到SQL Server。
  2. 在SSMS的对象资源管理器窗格中进入服务器的安全性文件夹。
  3. 右键单击对象资源管理器中出现的服务器的安全性>登录文件夹。
  4. 单击弹出的上下文菜单中的新建登录名...
  5. 在打开的新建登录名对话框中提供新登录名的详细信息,特别是其常规服务器角色用户映射页面(在左侧)。 (请参见答案底部每个页面的屏幕截图和示例输入。)
根据你的需求,你可能需要添加一个数据库用户,但是使用Windows或SQL Server身份验证连接到SQL Server实例时,需要一个服务器登录(比如你的sa登录)。在登录 - 新建对话框的用户映射页面中将新登录映射到数据库用户,如果指定的用户名不存在,则会在映射的数据库中创建一个新用户;或者你也可以将新登录映射到现有的数据库用户。 另一个SO问题详细介绍了服务器登录和数据库用户之间的区别。

登录 - 新建(常规页面)

SQL Server身份验证

Login - New (General, SQL auth)

Windows身份验证

Login - New (General, Win auth)

登录 - 新 (服务器角色页面)

Login - New (Server Roles)

登录 - 新的(用户映射页面)

SQL Server身份验证

Login - New (User Mappings, SQL auth)

或者

Windows身份验证

Login - New (User Mappings, Win auth)


1
用户sa登录失败。 - Christine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接