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

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

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

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

-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服务。

更多相关文章

  1. MySQL 5.7.9 服务无法启动-“NET HELPMSG 3534”的解决方法
  2. android中HttpURLConnection调用getResponseCode()时崩溃 解决方
  3. Android空引用问题的解决方法——on a null object reference
  4. android读取assets大于1M文件的解决方法
  5. 几个Android小错误解决方法
  6. CheckBox android:paddingLeft 不兼容问题解决方法
  7. Android(安卓)Studio使用过程中遇到的问题(一)-- "value 2"异常解
  8. Eclipse中编译Android工程时出现的问题解决方法。
  9. Android(安卓)ListView滑动后背景变黑问题解决方法

随机推荐

  1. 【Android】获得已安装应用
  2. android网站汇总
  3. android service 精辟解说(摘)
  4. Android 横屏时禁止输入法全屏
  5. 利用Android的Log 演示一个activity的生
  6. android 读写文件数据
  7. 关于屏幕解锁的实例
  8. Android 隐藏系统状态栏和标题栏
  9. Android(安卓)AsyncTask
  10. IDEA Android studio toString() 生成Jso