我已经在 Windows 7 机器上安装了 SQL Server 2005(开发人员版)(我知道 - 这不是我的选择!)机器名为 user-PC,并且只有一个用户:用户无密码。
我正在尝试使用服务器 USER-PC(取自选项列表)通过 Windows 身份验证连接到 DATABASE ENGINE。
我收到消息了Logon failed for user-PC\user (Microsoft SQL server error 18456)
。
以下是踪迹:
无法连接到 USER-PC。 =================================== 用户“user-PC\user”登录失败。(.Net SqlClient 数据提供程序) ------------------------------ 如需帮助,请单击:http://go.Microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=18456&LinkId=20476 ------------------------------ 服务器名称:USER-PC 错误编号:18456 严重程度:14 州:1 行号:65536 ------------------------------ 项目地点: 在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException 异常,布尔 breakConnection) 在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) 在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior、SqlCommand cmdHandler、SqlDataReader dataStream、BulkCopySimpleResultSet bulkCopyHandler、TdsParserStateObject stateObj) 在 System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(布尔值 enlistOK) 在 System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo、String newPassword、Boolean ignoreSniOpenTimeout、Int64 timerExpire、SqlConnection owningObject) 在 System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(字符串主机、字符串新密码、布尔重定向用户实例、SqlConnection owningObject、SqlConnectionString connectionOptions、Int64 timerStart) 在 System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject、SqlConnectionString connectionOptions、String newPassword、Boolean redirectedUserInstance) 在 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity 身份、SqlConnectionString connectionOptions、Object providerInfo、String newPassword、SqlConnection owningObject、Boolean redirectedUserInstance) 在 System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions 选项、对象 poolGroupProviderInfo、DbConnectionPool 池、DbConnection owningConnection) 在 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection,DbConnectionPoolGroup poolGroup) 在 System.Data.ProviderBase.DbConnectionFactory.GetConnection (DbConnection owningConnection) 在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection 外连接,DbConnectionFactory 连接工厂) 在 System.Data.SqlClient.SqlConnection.Open() 在 Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.ObjectExplorer.ValidateConnection(UIConnectionInfo ci,IServerType 服务器) 在 Microsoft.SqlServer.Management.UI.ConnectionDlg.Connector.ConnectionThreadUser()
答案1
我越想越觉得那条评论就是答案——尝试以管理员身份运行(右键单击,选择以管理员身份运行),看看是否可行。我猜想该帐户可能没有管理员权限或不属于管理员组。进入 SQL 后,您可以将该帐户作为登录名添加到 SQL Server 并授予其 Sysadmin 权限(假设这是您希望它拥有的访问权限)。
答案2
我脑海中浮现出许多问题:
您是本地连接还是远程连接?
这是一个默认实例还是命名实例?
启用了哪些协议?使用哪种连接方法?TCP/IP、命名管道、共享内存?
答案3
默认情况下,使用 SQL Server 2005(所有版本):
没有网络访问(本地使用 SQL Server 配置工具可以更改此情况:不要忘记添加防火墙例外)。
只有本地管理员组才有访问权限(您可以使用 SQL Server Management Studio 或 SQL 语句添加映射到具有适当权限的其他 Windows 用户的登录名/用户)。
(SQL Server 2008 在安装程序中提示用户/组获取初始服务器管理员访问权限。)