完整修复脚本
-- 1. 检查当前设置
SELECT
'当前状态' AS 描述,
CASE
WHEN EXISTS (SELECT * FROM sys.sql_logins WHERE name = 'sa' AND is_disabled = 0)
THEN 'sa 已启用'
ELSE 'sa 已禁用'
END AS sa状态,
(SELECT CAST(value AS INT) FROM sys.configurations WHERE name = 'LoginMode') AS 身份验证模式代码,
CASE (SELECT CAST(value AS INT) FROM sys.configurations WHERE name = 'LoginMode')
WHEN 1 THEN 'Windows 身份验证'
WHEN 2 THEN '混合模式'
ELSE '未知'
END AS 身份验证模式描述;
-- 2. 修改身份验证模式为混合模式
EXEC xp_instance_regwrite
N'HKEY_LOCAL_MACHINE',
N'Software\Microsoft\MSSQLServer\MSSQLServer',
N'LoginMode',
REG_DWORD,
2;
PRINT '注意:需要重启 SQL Server 服务才能使更改生效!';
-- 3. 检查注册表是否已修改
DECLARE @LoginMode INT;
EXEC xp_instance_regread
N'HKEY_LOCAL_MACHINE',
N'Software\Microsoft\MSSQLServer\MSSQLServer',
N'LoginMode',
@LoginMode OUTPUT;
SELECT
'修改后状态' AS 描述,
@LoginMode AS 注册表LoginMode值,
CASE @LoginMode
WHEN 1 THEN 'Windows 身份验证'
WHEN 2 THEN '混合模式'
ELSE '未知'
END AS 身份验证模式;
🔄 重启 SQL Server 服务的方法
选择一种方法重启服务:
1.SQL Server 配置管理器(推荐)
找到 SQL Server (MSSQLSERVER)
右键 → 重新启动
2.服务管理器
按 Win + R,输入 services.msc
找到 SQL Server (MSSQLSERVER)
右键 → 重新启动
3.命令行
cmd
net stop MSSQLSERVER
net start MSSQLSERVER
✅ 验证修复成功
重启服务后:
1.测试 sa 登录
2.运行验证查询
-- 使用 sa 登录后运行
SELECT
'登录成功!' AS 状态,
SUSER_NAME() AS 当前用户,
@@SERVERNAME AS 服务器名称,
GETDATE() AS 当前时间;
4835

被折叠的 条评论
为什么被折叠?



