zoukankan      html  css  js  c++  java
  • 没有了SA密码,无法Windows集成身份登录,DBA怎么办?

    一同事反馈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 Studio的windows集成身份验证登陆就可以了。
    

    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服务。
    
    参考资料:http://technet.microsoft.com/en-us/library/dd207004.aspx
  • 相关阅读:
    oracle“记录被另一个用户锁住”
    Oracle CASE WHEN 用法介绍
    拥有机器人的人生会是怎样的体验?
    需求那么多,核心需求都从哪里来?
    一文读懂互联网及电商逻辑
    读书:《敏捷产品--不确定性的思维革命》
    读书:《超越感觉:批判性思考指南》一
    618啦,你的钱包又被盯上啦!
    产品经理如何开启上帝视角?
    我的产品经理价值观
  • 原文地址:https://www.cnblogs.com/yibinboy/p/6051242.html
Copyright © 2011-2022 走看看