用户“域\管理员”登录失败。(Microsoft SQL Server,错误:18456)

Ale*_*der 4 sql-server

在我新安装的 SQL Server 2014 上,尝试连接到 SQL Server 时出现以下错误:

2015-05-13 12:09:38.40 Logon   Error: 18456, Severity: 14, State: 5.
2015-05-13 12:09:38.40 Logon   Login failed for user 'INTRA\Administrator'.
Reason: could not find a login matching the name provided. [CLIENT: <local machine>]
Run Code Online (Sandbox Code Playgroud)

我重新安装了 sql server 3 次。

登录失败的用户是我登录到服务器本身的 AD 用户。通过 SSMS 登录时,我不必提供任何凭据(它是自动填充的),因此这不会是拼写错误。

我该如何解决这个问题?

PS:我的SSL证书也有问题,已经解决了,所以潜在的问题可能更大。

Rem*_*anu 6

我重新安装了 sql server 3 次。

在安装过程中,系统会询问您将哪些用户添加为实例管理员。你应该添加自己。您可能添加了内置管理员组,现在您正在运行一个LUA进程并且丢失了管理员令牌并且无法访问该实例。如果是,则只是运行提升的客户端进程(“以管理员身份运行”)。

如果您没有将内置管理员组添加为 SQL 实例管理员,那么您必须按照系统管理员被锁定连接到 SQL Server 中描述的步骤进行操作。


Spö*_*rri 5

尝试使用“以管理员身份运行”在服务器上运行 SSMS,以检查您是否在安装过程中添加了 builtin\administrators。如果找不到任何具有足够权限的用户,则必须向服务器添加登录名并为其授予 sysadmin 权限。

通过在具有管理权限的服务器上启动 cmd.exe 并运行net stop mssqlserver,然后以单用户模式启动服务器net start mssqlserver /m

然后在同一窗口中运行SQLCMD 并键入以下内容。

create login [domain\administrator] from windows;
exec sp_addsrvrolemember 'domain\administrator', 'sysadmin';
go
exit
Run Code Online (Sandbox Code Playgroud)

和运行net stop mssqlservernet start mssqlserver

如果您正在运行命名实例,则服务名称不同 - 检查 services.msc 以查看名称,您必须运行 SQLCMD-S server\instance -E才能连接


KAS*_*DBA 1

对于状态 5:

\n\n

当 SQL Server 登录名使用 SQL Server 中不存在的\xe2\x80\x99 名称登录时,就会发生这种情况。当用户指定错误的用户名或拼写错误的登录名时,通常会出现此错误。所以你应该检查的第一件事是:

\n\n

如果登录名“INTRA\\Administrator”实际上存在于登录名中?

\n\n

您可以通过执行以下 T-SQL 来做到这一点:

\n\n
CREATE LOGIN [<domainName>\\<login_name>] FROM WINDOWS;\nGO\n
Run Code Online (Sandbox Code Playgroud)\n\n

或从这里通过 GUI

\n\n

另外,如这篇好读《故障排除错误 18456》中所列

\n\n
\n

如果您为包含的数据库用户指定了正确的用户名和密码,但指定了错误的(或没有)数据库,也会出现此错误。

\n\n

请注意,如果您尝试使用 SSMS 中的连接对话框连接到包含的数据库,并且尝试连接数据库而不是显式键入名称,您将首先收到提示

\n\n

“浏览服务器上的可用数据库需要连接到服务器。这可能需要一些时间。您想\n继续吗?”

\n\n

如果 SQL 身份验证凭据与服务器级别的登录名不匹配,您将收到一条错误消息,因为您所包含的用户无权访问 master.sys.databases。UI 中的错误消息\n 是:

\n\n

“无法连接到服务器,(Microsoft.SqlServer.ConnectionInfo) 用户登录失败\n \'\'。(Microsoft SQL Server,错误:18456)

\n\n

这里的要点是:始终在连接对话框的选项选项卡中显式指定数据库名称;不要使用浏览功能。

\n
\n