今天看到这篇文章:没有了SA密码,无法Windows集成身份登录,DBA怎么办?
想起来之前着急哥问我的一个问题,一个DBA删除了Windows登录用户,而且SQLSERVER服务器的验证方式是Windows身份验证
怎麽办??
我当时给他的答复是:重装系统数据库master
今天看到这篇文章没有了SA密码,无法Windows集成身份登录,DBA怎么办?,有思路了
假设我们遇到很糟糕的情况
sa被禁用,服务器身份验证为Windows身份验证模式,Windows登录用户被删,没有其他sysadmin角色的登录用户
步骤一:
停掉SQLSERVER:在命令行 net stop mssqlserver
步骤二:
转到SQLSERVER的安装目录
然后加上/m /f 参数
步骤三:以为单用户模式启动SQLSERVER
步骤四:打开SSMS
这时候一定不要马上进行连接,需要点击取消,然后在左上角的点击新建查询,这个步骤跟DAC(专用管理员连接)的步骤是一样的
你会发现用Windows登录用户这时候可以登录
步骤五:执行下面的SQL脚本
- --打开xp_cmdshell功能
- EXEC [sys].[sp_configure] @configname = 'xp_cmdshell', -- varchar(35)
- @configvalue = 1 -- int
- RECONFIGURE WITH override 5
- --修改注册表,修改身份验证为混合验证方式
- USE [master]
- GO
- EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', REG_DWORD, 2
- GO
- --创建登录名
- CREATE LOGIN [计算机名\Administrator] FROM WINDOWS; 15 GO
- --赋予登录名的权限为sysadmin
- USE master 19 GO
- EXEC [sys].[sp_addsrvrolemember] @loginame = '计算机名\Administrator', -- sysname
- @rolename = sysadmin -- sysname
- --关闭xp_cmdshell功能
- EXEC [sys].[sp_configure] @configname = 'xp_cmdshell', -- varchar(35)
- @configvalue = 0 -- int
- RECONFIGURE WITH override
这时候身份验证方式已经改为混合验证方式
步骤六:关掉SQLSERVER,再重新启动
打开SQLSERVER配置管理器,启动SQLSERVER
步骤七:登录SQLSERVER
回到SSMS,可以看到这时候恢复正常了
亲爱的:若该文章解决了您的问题,可否收藏+评论+分享呢?
文章评论 本文章有个评论