没有了SA密码,无法Windows集成身份登录,DBA怎么办?-阿里云开发者社区

开发者社区> dbaer> 正文

没有了SA密码,无法Windows集成身份登录,DBA怎么办?

简介: 一同事反馈SQL无法正常登录了,以前都是通过windows集成身份验证登录进去的(sa密码早忘记了),今天就改了服务器的机器名,现在无论如何都登录不进去。
+关注继续查看

一同事反馈SQL无法正常登录了,以前都是通过windows集成身份验证登录进去的(sa密码早忘记了),今天就改了服务器的机器名,现在无论如何都登录不进去。

      SQL登录时如果采用windows集成身份验证,登录框将会以“机器名\当前系统用户名”的格式显示登录名,而且登录名和密码都是灰色的,不允许用户输入。

      了解到同事刚刚修改了服务器的机器名,因此在SQL的登陆框中显示“新机器名\当前系统用户名”。要知道windows集成身份验证能登录的原因是在SQL的登录名中已经包括了该用户名,原来的用户名在SQL安装的时候已经记录到了SQL中,如果机器名变更了,“新机器名\当前系统用户名”肯定无法正常登录。

clip_image001[4]

      网上看到有人说可以采用OSQL–S instancename –E(在命令行窗口中输入)登录进去后再去修改sa的密码,一番尝试后发现是扯谈,因为采用这种方式的前提是需要windows集成身份能够登录。

     后来在微软的官网上看到一篇文档,原来只要在SQL的启动参数中加一个“-m”的选项(记得在-m前加分号),然后需要重启SQL服务,再次用SQL Management Studiowindows集成身份验证登陆就可以了。

clip_image003[4]

     -m表示单用户登录。细心的读者可能会质疑了:只是加了-m,但最后还是采用的windows集成身份验证,理论说跟之前使用SQLOS –S instancename –E有什么区别呢?

    这个问得非常专业。当时我也没有搞明白,觉得有点不可思议,但结果就是这样,肯定有其道理。后来在微软的官网上找到了这段话。

Start the instance of SQL Server in single-user mode by using either the -m or -f options. Any member of the computer's local Administrators group can then connect to the instance of SQL Server as a member of the sysadmin fixed server role.

      大概的意思是说当在SQL的启动参数中添加了-m或者-f参数时,计算机本地管理员组的任何一个用户都可以sysadmin的身份登录到SQL中。相信读者看到这个地方就明白了。这里其实并没有去检验登录的用户是否在SQL在存在,只是检查该用户是否为本地计算机的管理组中的用户。

     好了,相信后面就不用过多累赘了,只是提醒下读者:修改了sa密码后记得把原来添加在SQL启动参数的-m删除掉,然后在重启SQL服务。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
jQuery中的cache : false到底有什么用?
jQuery中的cache : false到底有什么用?
4 0
Mybaits结果集之集合,Javabean中嵌套List的解决方案
Mybaits结果集之集合,Javabean中嵌套List的解决方案
5 0
Eclipse 使用Maven 构建Web项目的最佳方式,我认为没有之一(1)
Eclipse 使用Maven 构建Web项目的最佳方式,我认为没有之一
5 0
Java版阿里云通信短信发送API接口实例(1)
Java版阿里云通信短信发送API接口实例(新)
5 0
高效能程序员的修炼札记:安全基础,保护用户数据
高效能程序员的修炼札记:安全基础,保护用户数据
4 0
ecs使用体验
这是一段时间以来使用ecs的体验
4 0
使用Jsoup过滤HTML标签,获取纯文本
使用Jsoup过滤HTML标签,获取纯文本
3 0
Linux中的“快捷方式”:ln
如Windows中快捷方式的用途一样,为了方便对系统文件|文件夹修改,创建一个链接,并使这个链接指向另一个文件或者文件夹,使其用户在操作链接时等同于操作指向的文件|文件夹。
9 0
mysql innodb引擎下的行锁由于意外没有被释放,导致后面的请求无法继续,怎么办?
mysql innodb引擎下的行锁由于意外没有被释放,导致后面的请求无法继续,怎么办?
4 0
+关注
dbaer
擅长SQL Server、MySQL、云架构部署等
33
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载