MSSqlserver 恢复sa密码及 删除builtin\administrators后恢复

来源:互联网 发布:python 接收post数据 编辑:程序博客网 时间:2024/06/04 22:47

BUILTIN是built in 是创建Windows时候的Administrator内建账号。当删除(drop)builtin\administrators 后,Windows验证方式将无法登录sqlserver数据库。但当你忘记SA密码是基本只能重置SA密码来找回你的sysadmin用户重建builtin\administrators。

该方法适用绝大多数MSsqlserver版本。



故本文旨在两个目的:

一、如何通过单用户模式找回SA密码;
二、如何恢复builtin\administrators账号,恢复windows验证方式登录mssql数据库。



一,找回SA密码
1) Run as administrator 打开comandline,执行如下停库命令:
net stop mssqlserver
其他服务可停可停,建议全部停掉,确保没有其他任何用户或程序尝试连接数据库(如是vmware可将网卡禁用在console端操作),否则会提示如下错误:
Login failed for user. Reason: Server is in single user mode. Only one administrator can connect at this time

2)单用户模式打开数据库
net start mssqlserver  /m

3)更改sa密码

sqlcmd -S  msserver_hostname  -E       //命令行连接数据库, - S msserver_hostname为数据库主机名

ALTER Login sa enable   //(如果sa没有启用,需要重新开启)
go
ALTER LOGIN [sa] WITH PASSWORD='123456'   //123456 为新密码
go

,如果errorlog中提示Login failed for user 'sa'. Reason: An attempt to login using SQL authentication failed. Server is configured for Windows authentication only,证明

该SQLserver的认证模式默认只制定了windows认证模式,参考日志:


此时可通过修改注册表的sqlserver 对应的loginon参数修改为2,并重启数据库重新设置成混合认证模式


更改后启动后的日志显示:



4)正常重启数据库服务
net  stop mssqlserver
net start mssqlserver


二、重建builtin\administrators,恢复windows验证登录sqlserver方式
用SA登录 ssms,执行如下sql即可:
EXEC sp_grantlogin 'BUILTIN\Administrators'
EXEC sp_addsrvrolemember 'BUILTIN\Administrators','sysadmin'


0 0
原创粉丝点击