如果MSSQL的sa密码忘记了,可以通过windows混合模式登陆,但是如果sa密码忘记了,混合模式也被关闭了,这时候应该如何破解密码呢?
方法1:
可通过修改注册表的方式开启混合验证模式,然后通过windows账户登录sql后直接在安全模块修改sa密码即可,
修改:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQLServer 中的LoginMode = 2
其中MSSQL10.MSSQLSERVER这部分不同版本的mssql会有所不同,可以注册表全表搜索LoginMode字段。
方法2:
如果方法1无效可通过mssql的单用户配合sqlcmd修改密码,方法如下:
停止所有sql服务,然后命令行进入mssql安装目录的binn目录下
执行sqlserver.exe -m启动single模式(cmd窗口不要关,类似mysql的safe模式)//也可通过mssql配置管理器的高级配置的启动参数里面加上;-m效果一样,但是操作麻烦一些。
另开一个cmd窗口执行sqlcmd -E直接进去sqlcmd模式
执行以下命令:
create login [builtin\administrators] from windows
go
exec sp_addsrvrolemember [builtin\administrators], [sysadmin]
go
ALTER LOGIN sa WITH PASSWORD=’aliyun’
go
shutdown
go
关闭mssql服务,然后正常启动
这时候sa密码既被修改为aliyun了
————————
注意:
如果是2008以及以上系统且开启了UAC,那么即使开启了混合模式认证,这时候直接启动ms sql studio manager也是无法登陆的;
必须右键通过管理员权限运行ms sql studio manager才可以直接使用windows认证方式登陆。