如果不慎遗忘 SQL Server 的管理员密码(即:遗忘了所有的管理员密码),或者需要强行添加另一个管理员帐号,这时候需要一种补救措施。 SQL Server 提供了单用户模式(也称为维护模式),便于用户更改服务器配置选项或恢复受损的系统数据库。在单用户模式下
如果不慎遗忘 SQL Server 的管理员密码(即:遗忘了所有的管理员密码),或者需要强行添加另一个管理员帐号,这时候需要一种补救措施。
SQL Server 提供了单用户模式(也称为维护模式),便于用户更改服务器配置选项或恢复受损的系统数据库。在单用户模式下启动 SQL Server,可以使本机Administrators 组的任何成员作为 sysadmin服务器角色的成员连接到 SQL Server 数据库引擎(实例)。
注意:在单用户模式启动之前,请停止 SQL Server Agent 服务,防止 SQL Server Agent 抢占此唯一的连接。
一、启用单用户模式
1. 打开SSCM(SQL Server配置本文来源gaodai#ma#com搞@@代~&码*网2管理器)
2. 停止SQL Server 引擎服务(实例)
3. 修改该引擎服务的属性
650) this.width=650;” title=”SQL Engine 属性.png” alt=”wKioL1Q7Z-zB1lfGAAHlB-mrhOU674.jpg” src=”https://img.gaodaima.com/d/file/2021/11/10/2760056e5dc841e3e701d617dcf35249.jpg” />
4. 添加单用户模式启动参数
(1) 适用于SQL Server 2012之前的旧版本
650) this.width=650;” title=”启动参数 SQL2008.png” alt=”wKiom1Q7fYPBiRK1AAJiHAPzXBw725.jpg” src=”https://img.gaodaima.com/d/file/2021/11/10/371e6bb00bce7fe5e079a04d85eab27c.jpg” />
(2) 适用于SQL Server 2012及后陆版本
650) this.width=650;” title=”启动参数 SQL2012.png” alt=”wKioL1Q7aHThamIJAAFe6_uwiMs725.jpg” src=”https://img.gaodaima.com/d/file/2021/11/10/1bef72f8a5ea53eb8d02506305b6ac04.jpg” />
5. 完成上述修改后,启动数据库引擎服务
6. 检查启动日志,确认已进入了单用户模式
2014-10-13 13:55:08.95 spid7s SQL Server started in single-user mode. This an informational message only. No user action is required. |
注意:启动日志文件的位置及文件名由“启动参数”的“-e”参数指定。例如:
C:\Users\Administrator> notepad “C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\Log\ERRORLOG” |
二、越权添加或修改管理员帐户
1. 查看数据库引擎服务的列表(确保下一步操作时不会敲错实例的名称)
C:\Users\Administrator> sqlcmd -L 服务器: |
2. 打开命令行窗口,使用 sqlcmd 连接到数据库
C:\Users\Administrator> sqlcmd -S PC2014\SQL2008R2 |
3. 执行以下其中一条T-SQL语句,添加或修改帐号
(1)添加本地或域帐户到数据库管理员组
1> EXEC sp_addsrvrolemember ‘PC2014\jim’, ‘sysadmin’;
2> GO
(2)添加内置帐户到数据库管理员组
1> EXEC sp_addsrvrolemember ‘BUILTIN\administrators’, ‘sysadmin’;
2> GO
(3)如果遗忘了旧密码,重置密码 (官方不推荐使用sp_password)
1> Alter Login [BUILTIN\administrator] with password=’newpassword’;
2> GO
(4)如果还记得旧密码,修改密码
1> Alter Login [sa] with password=’newpassword’ old_password=’oldpassword’;
2> GO
注意:如果SA帐户被禁用,则
1> Alter Login [sa] ENABLE;
2> GO
注意:如果服务器身份验证模式仅为“Windows身份验证模式”,那么需要改为“SQL Server和Windows身份验证模式”,才可以使用sa帐户。修改此模式需要修改注册表,注册表项位于:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\\MSSQLServer,将LoginMode改为2即可。
“实例ID”的命名格式默认为“MSSQL.”,例如 “MSSQL12.MSSQLSERVER”。这个设置是在安装SQL Server时指定的,安装向导将使用这个“实例ID”创建对应的文件夹。
650) this.width=650;” title=”实例ID.png” alt=”wKioL1Q7imajAlrAAAMpYpIY_Wg150.jpg” src=”https://img.gaodaima.com/d/file/2021/11/10/47c36beb22ab9189b2d7d9dbdcf00941.jpg” />
三、启动数据库引擎服务
1. 打开SSCM,修改数据库引擎的属性,将“-m ”参数从启动参数中移除。
2. 启动数据库引擎服务,以新建或修改过的数据库管理员帐户连接到数据库。
附注:直接使用命令行启动单用户模式的方法
1. 找到 sqlservr.exe 的路径
650) this.width=650;” title=”服务 属性.png” alt=”wKiom1Q7gZGjP7v5AAIxWqcEb88147.jpg” src=”https://img.gaodaima.com/d/file/2021/11/10/2633b6cfc5a0c7715bc340f3de8bd57b.jpg” />
650) this.width=650;” title=”服务 属性 exe.png” alt=”wKiom1Q7garQuCwKAAHZXCVviQU110.jpg” src=”https://img.gaodaima.com/d/file/2021/11/10/ebd9340c4ae104aac91d6c45b68948d0.jpg” />
2. 复制 sqlservr.exe 到命令行窗口,添加“-m”参数并运行
例如:
C:\Users\Administrator> “C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\Binn\sqlservr.exe” -sSQL2008R2 -m |
启动日志将直接显示在命令行窗口,请检查启动日志,确认已成功启用了单用户模式。
注:还可以强行指定客户端程序。
(1) -m “sqlcmd” 。指定只有sqlcmd可以连接到SQL Server 实例。
(2) -m “Microsoft SQL Server Management Studio -Query” 。指定只有SSMS可以连接到SQL Server 实例。
3. 另外打开一个命令行窗口,即可以使用 sqlcmd 执行操作。
4. 如需停止SQL Server 实例,只需要在sqlservr.exe窗口按Ctrl-C(甚至直接关闭sqlservr.exe的窗口),在遇到提问时回答“Y”。
Do you wish to shutdown SQL Server (Y/N)?