如果忘记 SQL Server 管理员密码,可以使用下面的方式处理
1. 使用 SQL Server 服务器计算机本地 Administrators 组的任何成员登录到 SQL Server 服务器
2. 确定忘记管理员密码的 SQL Server 服务
可以在服务(services.msc)里面查看,或者使用下面的 Powershell 命令
Get-Service | ? DisplayName -Like ‘SQL Server (*)’
3. 停止 SQL Server 服务
4. 以单用户模式(/m参数)启动 SQL Server 服务
使用参数 /m 启动,在管理员命令提示符下执行
net start start mssqlserver /m
5. 使用 slqcmd 完成管理员解锁
在单用户模式下启动 SQL Server 可使计算机本地 Administrators 组的任何成员作为 sysadmin 固定服务器角色的成员连接到 SQL Server 实例
6. 完成后停止 SQL Server 服务,并以正常方式启动 SQL Servr 和相关服务即可
Powershell 通用脚本 – 将当前登录帐号加入 SQL Server 的 sysadmin 成员
# 脚本需要在管理员命令提示符下的 Powrshell 中执行
# 可以通过下面这个命令进入到管理员命令提示符下的 Powershell
# Powershell Start-Process Powershell.exe -Verb runas
ServiceName=′mssqlServiceName=′mssqlreportdb’ # 定义要操作的 SQL Server 服务
Service=Get−ServiceService=Get−ServiceServiceName
# 停止 SQL Server 服务并以单用户模式启动
net.exe stop ((Service.Name)
net.exe start ((Service.Name) /m
# 当前用户加入 SQL Server 的 sysadmin 成员
Instance=′.\'+(Instance=′.\'+(Service.Name -Split ‘$’)[1]
If( -Not Instance)$Instance=‘.′Instance)$Instance=‘.′user = [Environment]::UserDomainName + ‘\’ + [Environment]::UserName
sql="CREATELOGIN[sql="CREATELOGIN[user] FROM WINDOWS; EXEC sp_addsrvrolemember [user],sysadmin”sqlcmd.exe−Suser],sysadmin”sqlcmd.exe−SInstance -Q $sql
# 以正常方式启动 SQL Server 服务(依赖的服务需要手工检查启动)
net.exe stop ((Service.Name)
net.exe start ((Service.Name)