300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > SQLSERVER误删SA密码Windows登录用户

SQLSERVER误删SA密码Windows登录用户

时间:2019-03-02 09:13:06

相关推荐

SQLSERVER误删SA密码Windows登录用户

数据库|mysql教程

SQLSERVER,误删,密码,Windows,登录,用户

数据库-mysql教程

一元微购源码下载,Ubuntu镜像下载命令,tomcat部署的应用重启,nsf爬虫软件,php跟asp,北碚抖音seo获客的趋势lzw

想起来之前着急哥问我的一个问题,一个DBA删除了Windows登录用户,而且SQLSERVER服务器的验证方式是Windows身份验证。 怎麽办?? 我当时给他的答复是:重装系统数据库master 今天看到这篇文章没有了SA密码,无法Windows集成身份登录,DBA怎么办?,有思路了 假

源码交易平台系统买,vscode怎么用 c,ubuntu连接外设,不需要tomcat,puyter 爬虫,php数组反向,安庆seo网络推广方案,网站js源码,注册信息页面模板下载不了lzw

卡盟破解源码,ubuntu系统屏幕大小,授权爬虫是否违法,jplayer php,30岁seolzw

想起来之前着急哥问我的一个问题,一个DBA删除了Windows登录用户,而且SQLSERVER服务器的验证方式是Windows身份验证。

怎麽办??

我当时给他的答复是:重装系统数据库master

今天看到这篇文章没有了SA密码,无法Windows集成身份登录,DBA怎么办?,有思路了

假设我们遇到很糟糕的情况

sa被禁用,服务器身份验证为Windows身份验证模式,Windows登录用户被删,没有其他sysadmin角色的登录用户

步骤一:

停掉SQLSERVER:在命令行 net stop mssqlserver

步骤二:

转到SQLSERVER的安装目录

然后加上/m /f 参数

步骤三:以为单用户模式启动SQLSERVER

步骤四:打开SSMS

这时候一定不要马上进行连接,需要点击取消,然后在左上角的点击新建查询,这个步骤跟DAC(专用管理员连接)的步骤是一样的

你会发现用Windows登录用户这时候可以登录

步骤五:执行下面的SQL脚本

1 –打开xp_cmdshell功能 2 EXEC [sys].[sp_configure] @configname = ‘xp_cmdshell’, — varchar(35) 3 @configvalue = 1 — int 4 RECONFIGURE WITH override 5 6 7 –修改注册表,修改身份验证为混合验证方式 8 USE [master] 9 GO10 EXEC xp_instance_regwrite N’HKEY_LOCAL_MACHINE’, N’SoftwareMicrosoftMSSQLServerMSSQLServer’, N’LoginMode’, REG_DWORD, 211 GO12 13 –创建登录名14 CREATE LOGIN [计算机名Administrator] FROM WINDOWS;15 GO16 17 –赋予登录名的权限为sysadmin18 USE master19 GO20 EXEC [sys].[sp_addsrvrolemember] @loginame = ‘计算机名Administrator’, — sysname21 @rolename = sysadmin — sysname22 23 –关闭xp_cmdshell功能24 EXEC [sys].[sp_configure] @configname = ‘xp_cmdshell’, — varchar(35)25 @configvalue = 0 — int26 RECONFIGURE WITH override

这时候身份验证方式已经改为混合验证方式

步骤六:关掉SQLSERVER,再重新启动

打开SQLSERVER配置管理器,启动SQLSERVER

步骤七:登录SQLSERVER

回到SSMS,可以看到这时候恢复正常了

总结

感谢i6first大侠,之前一直以为无法子了,想不到他想到了用单用户模式启动的方法来进入SQLSERVER。

没有了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 Studio的windows集成身份验证登陆就可以了。

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。