2010-06-03 79 views
6

2010-05-06 17:21:22.30 Logon Error: 18456, Severity: 14, State: 6. 2010-05-06 17:21:22.30 Logon Login failed for user . Reason: Attempting to use an NT account name with SQL Server Authentication. [CLIENT: ]错误18456.状态6“尝试在SQL Server身份验证中使用NT帐户名称。”

认证模式为“混合”。它是MS SQL Server 2008.

可能是什么问题?你认为用户名配置不正确吗?

是否有任何链接提供正确的权限和配置用户帐户? 这样我就可以检查我正在使用的acc的权利和特权...

回答

1

此问题取决于您在期望您使用SQL Server身份验证的应用程序中传递NT/Windows帐户信息。

它是内部应用程序还是第三方应用程序?你如何告诉它使用什么用户ID?

例如,SQLCMD具有连接的两种方法 - 无论是提交一个用户ID &密码(分别为开关-U和-P),在这种情况下,它使用SQL身份验证,或者告诉它使用可信认证(开关-E)在这种情况下,它会通过您的Windows登录凭据。

要生成与SQLCMD等效的错误,您需要运行SQLCMD -S -U -P。

如果是内部应用程序,请检查连接字符串,并查看http://www.connectionstrings.com了解更多信息。

如果它是第三方应用程序,那么如果它使用的是ODBC DSN,那么请查看它的设置并确保它独立工作(有一个有用的“测试连接”按钮)。或者查看应用程序配置文件/注册表设置/任何内容中的数据库连接信息。否则检查手册!

+0

我们在我们的应用程序中使用LogonUser API进行Windows身份验证。只有Windows帐户凭据正在提供给此API。然而,这个API返回了我的问题 – Aragorn 2010-06-07 04:58:22

+0

中指出的错误你用来连接数据库的连接字符串是什么? – 2010-06-07 07:05:46

2

您是否正在尝试使用带有NT名称/密码的SQL Server登录模式?不允许。仅在SQL Server登录模式下使用SQL Server安全登录。

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

否则,将NT用户创建为SQL Server中数据库权限的安全登录&。

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

相关问题