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

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

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

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

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

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

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

     -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

时间: 2024-10-22 22:13:46

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

通过Windows集成身份认证登录SQL Server失败

问题 在之前的技巧中,您讨论了由于在Active Directory中存在大量的组,需要超越MaxTokenSize来容纳 更大的Kerberos tokens.与此同时,我们也注意到MaxTokenSize需要做出相应调整,这是由于使用 Windows 集成身份认证(Windows Integrated Authentication)的web应用程序也出现了启动失败的问题 ,其中包括SQL Server Reporting Services.我就职的公司做出了必要的改动并重新启动了SQL和We

SQLSERVER误删SA密码Windows登录用户

  想起来之前着急哥问我的一个问题,一个DBA删除了Windows登录用户,而且SQLSERVER服务器的验证方式是Windows身份验证. 怎麽办?? 我当时给他的答复是:重装系统数据库master 今天看到这篇文章没有了SA密码,无法Windows集成身份登录,DBA怎么办?,有思路了 假设我们遇到很糟糕的情况 sa被禁用,服务器身份验证为Windows身份验证模式,Windows登录用户被删,没有其他sysadmin角色的登录用户 步骤一: 停掉SQLSERVER:在命令行 net sto

没有sa密码无法集成windows身份验证登录的解决方法_MsSql

SQL登录时如果采用windows集成身份验证,登录框将会以"机器名\当前系统用户名"的格式显示登录名,而且登录名和密码都是灰色的,不允许用户输入. 了解到同事刚刚修改了服务器的机器名,因此在SQL的登陆框中显示"新机器名\当前系统用户名".要知道windows集成身份验证能登录的原因是在SQL的登录名中已经包括了该用户名,原来的用户名在SQL安装的时候已经记录到了SQL中,如果机器名变更了,"新机器名\当前系统用户名"肯定无法正常登录. 网上看

没有sa密码无法集成windows身份验证登录的解决方法

SQL登录时如果采用windows集成身份验证,登录框将会以"机器名\当前系统用户名"的格式显示登录名,而且登录名和密码都是灰色的,不允许用户输入. 了解到同事刚刚修改了服务器的机器名,因此在SQL的登陆框中显示"新机器名\当前系统用户名".要知道windows集成身份验证能登录的原因是在SQL的登录名中已经包括了该用户名,原来的用户名在SQL安装的时候已经记录到了SQL中,如果机器名变更了,"新机器名\当前系统用户名"肯定无法正常登录. 网上看

SQL Server的sa密码丢失解决

在网上看了很多如何修改SQLServer2005的密码的方法.大多数都是转了同一个帖子: 用windows权限进入,然后修改当前实例属性中的安全项,然后重新启动就可以修改了,但是操作手顺与我的SQLServer貌似不同.大概是SP1之前可以这么做吧. 首先用windows账户登录,然后在master表里执行: <div codepanel"=""> EXEC sp_password NULL, '你的新密码', 'sa'   ------------以下为网络搜集

Windows 集成的身份验证连接SQL Server数据库,打造更安全的连接

server|window|安全|数据|数据库 摘要:今天用C#编写一个Windows 服务程序,其中要连接一个Windows 2003 Server上的SQL Server 2000 数据库,用SQL Server 身份验证.发现普通程序都能联上,但是Windows服务程序就是联不上. 后来查了资料,找到了解决方法.共享给大家. 三步解决: 1.  在服务器上创建一个用户,配置好SQL Server数据库访问权限. 2.  在客户端创建一个一样的用户. 3.  服务程序以刚创建的那个客户端用户

没有开启windows混合登陆模式破解MSSQL的SA密码

如果MSSQL的sa密码忘记了,可以通过windows混合模式登陆,但是如果sa密码忘记了,混合模式也被关闭了,这时候应该如何破解密码呢? 方法1: 可通过修改注册表的方式开启混合验证模式,然后通过windows账户登录sql后直接在安全模块修改sa密码即可, 修改:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQLServer 中的LoginMode = 2 其中MSSQL10

SQL Server 2000 sa密码忘了怎么办

首先是以"windows身份验证"方式登录SQL查询分析器,然后执行 EXEC sp_password NULL,'hello','sa' 就可以将sa的密码改为hello了. SQL忘记sa密码修改方法 要从混合模式切换到集成 (Windows) 身份验证模式,请按以下步骤操作: 1. 要停止 MSSQLSERVER 以及所有其他相关服务(如 SQLSERVERAgent),请在"控制面板"中打开服务程序. 2. 打开注册表编辑器.要打开注册表编辑器,请依次单击开

ASP.Net:基于Windows的身份验证

asp.net|window 如果将 ASP.NET 配置为使用 Windows 身份验证,则 IIS 使用配置的 IIS 身份验证机制执行用户身份验证.启用Windows身份验证的步骤如下:     (1) 配置 Web.config文件.     <authentication mode="Windows" />     (2) 首先启动系统的Internet 信息服务(IIS),右击网站本目录的节点,选择[属性]命令.如图12.3所示. 图12.3 启动IIS (3)