SQL SERVER本地管理员和SA帐号都无法访问的问题和解决方案

这几天在讲SQL Server 2008的课程,今天头一天,因为主办方准备的环境是用做好的同一个虚拟机,然后分发到很多台实验用的机器后,用sysprepare这种工具,修改了电脑名称。一早就遇到大家无法登录到SQL Server的问题,不管是用本地管理员,还是SA帐号。

 

我分析下来,本地管理员无法登录的原因就是因为电脑名称修改了之后,现在的本地管理员的SID已经不是修改之前那个本地管理员的SID了,而SQL Server里面其实保存的是SID,并不是用户名称,所以导致他无法登录服务器。而至于用SA帐号无法登录,是因为主办方在准备这个环境的时候,并没有启用混合验证模式。

 

以前也遇到过类似的一个问题,但一下子忘记怎么解决的了。不管怎样,我们还是想办法解决掉了这个问题,参考了下面的博客文章

http://blogs.msdn.com/b/raulga/archive/2007/07/12/disaster-recovery-what-to-do-when-the-sa-account-password-is-lost-in-sql-server-2005.aspx

 

大致的步骤就是:

  1. 用本地管理员登录,停止SQL Server服务
  2. 修改SQL Server服务的启动参数,在原先的启动参数后面添加 “;-m”(不要带双引号),这是将SQL Server设置进入单用户模式
  3. 启动SQL Server服务,使用sqlcmd登录到SQL Server服务器
  4. 执行exec sp_addsvrrolemember ‘MachineName\Administrator’ ‘sysadmin’;GO;(请注意,红色部分要替换为你的本地管理员帐号)
  5. 停止SQL Server服务,将原先添加的启动参数“;-m”删除掉
  6. 启动SQL Server服务

建议大家安装SQL Server的时候,还是设置混合验证模式和SA密码,然后要保护好这个密码。

你可能感兴趣的:(sql,server)