无法登录到SQL服务器+SQL服务器认证+错误。18456
我在我的localhost/sql2008服务器上创建了登录账户(例如:User123)。
映射到数据库(默认)。
SQL服务器上的认证模式被设置为两者(Windows和SQL)。
但登录SQL服务器失败,出现以下信息(对于User123)
注意:我已经多次检查用户名和密码是否正确输入。
错误细节。
用户'User123'.的登录失败。 (Net.SqlClient Data Provider)
服务器名称:localhost/sql2008错误 编号:18456 严重程度:14 状态:1 行数 : 65536
请提供任何帮助。
118
3
你需要启用SQL Server认证。
1.在对象资源管理器中,右击服务器并点击"属性"。
2.在"服务器属性"窗口中,在左边的页面列表中点击"安全"。在"服务器认证"下选择"SQL服务器和Windows认证模式"单选。
3.重新启动SQLEXPRESS服务。
默认情况下,登录失败的错误信息只是一个客户端用户连接被服务器拒绝,原因是登录凭证不匹配。你可以检查的第一个任务是看该用户在该SQL Server实例和相关数据库上是否有相关权限,这很好。显然,如果必要的权限没有被设置,那么你需要通过授予该用户登录的相关权限来解决这个问题。
尽管如果该用户在数据库和amp上有相关的权限,但如果服务器遇到该登录的任何凭证问题,那么它将阻止向SQL服务器授予认证,客户端将得到以下错误信息。
好了,现在怎么办,通过看错误信息,你觉得这是非描述性的,可以理解为Level & 状态。默认情况下,操作系统错误会显示'状态'为1,而不考虑验证登录时的问题性质。因此,为了进一步调查,你需要查看相关的SQL Server实例错误日志,以获得更多关于此错误的严重程度和amp; 状态的信息。你可以查看一下日志中的相应条目。
正如上面所定义的,错误的严重程度& 状态列是找到问题来源的准确反映的关键。在上面的错误中,8号状态表示由于密码不匹配导致的认证失败。书籍在线参考。默认情况下,严重程度低于19的用户定义信息在发生时不会被发送到微软Windows应用程序日志中。因此,严重程度低于19的用户定义的消息不会触发SQL Server Agent警报。
SQL Server协议(Dev.team)的项目经理Sung Lee概述了关于错误状态描述的进一步信息:常见的错误状态及其描述在下表中提供。
你可以看到没有从该SQL Server实例'的错误日志中定义严重程度或状态级别。 因此,下一个故障排除选项是查看事件查看器的安全日志[编辑,因为屏幕截图丢失,但你可以得到
意思,在事件日志中寻找有趣的事件]。
我也有这样的问题,不过我的问题是因为我没有把服务器认证设置为"SQL Server和Windows认证模式"(你有),我只是想在这里提一下,以防有人在你的问题中漏掉。
你可以通过以下方式访问它