错误18456。状态6“尝试使用SQL Server身份验证的NT帐户名。”

11

2010-05-06 17:21:22.30 登录 错误: 18456, 严重性: 14, 状态: 6. 2010-05-06 17:21:22.30 登录 登录失败,原因:尝试使用一个NT账户名进行SQL Server身份验证。[客户端:]

认证模式为"混合"。它是MS SQL Server 2008。

可能的问题是什么?你觉得用户名没有正确配置吗?

有没有可用的链接来授予正确的权限和配置用户账户?这样我就可以检查我正在使用的账户的权限和特权...

2个回答

6

您是否试图使用NT名称/密码与SQL Server登录模式?不允许。仅限SQL Server安全登录,使用SQL Server登录模式。

请使用Windows登录模式(它不允许任何密码,并且必须是当前Windows用户)。

否则,请在SQL Server中将NT用户创建为安全登录以获取数据库权限。

如果您尝试使用不同用户名进行Windows登录,则必须模拟或以该用户身份运行程序。SQL Server无法使用除当前用户之外的Windows登录。


2
这个问题是因为您在一个期望使用 SQL Server 身份验证的应用程序中传递了 NT/Windows 帐户信息。
这是一个内部应用程序还是第三方应用程序?您是如何告诉它要使用哪个用户 ID 的?
例如,SQLCMD 有两种连接方式 - 要么提交 userID 和 password(分别是开关 -U 和 -P),这种情况下它使用 SQL 认证,要么告诉它使用 Trusted authentication(开关 -E),这种情况下它会传递您的 Windows 登录凭据。
要使用 SQLCMD 生成相应的错误,您需要运行 SQLCMD -S <服务器名称> -U <用户名> -P <密码>。
如果这是一个内部应用程序,请检查连接字符串,并查看 http://www.connectionstrings.com 获取更多信息。
如果这是一个第三方应用程序,并且它使用 ODBC DSN,则请查看该设置并确保它可以独立工作(有一个有用的“测试连接”按钮)。或者查找应用程序配置文件/注册表设置/其他数据库连接信息。否则请查看手册!

1
我们在应用程序中使用 LogonUser API 进行 Windows 身份验证。此 API 仅提供 Windows 帐户凭据。然而,该 API 返回我问题中所述的错误。 - Aragorn
1
你正在使用什么连接字符串来连接数据库? - Thomas Rushton

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