ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

SQL Server 服务启动失败(5120 / 17204 权限报错)修复实战:icacls 授权 DATA 文件夹 + 一键批处理脚本

SQL Server 服务启动失败(5120 / 17204 权限报错)修复实战:icacls 授权 DATA 文件夹 + 一键批处理脚本 一、问题现象某台服务器的 SQL Server 实例突然无法启动具体表现为在「服务」管理器中点击 启动几秒后报错服务没有响应控制功能错误代码1053。查看 SQL Server 错误日志出现经典的两条报错错误 5120Unable to open the physical file ...mdf. Operating system error 5: 5(Access is denied).错误 17204FCB::Open failed: Could not open file ... Operating system error 5(Access is denied).事件查看器 → 应用程序日志中SQL Server 记录启动即失败、无法打开数据库文件。出现error 5Access is denied访问被拒绝基本可以锁定方向不是文件损坏而是权限问题。二、根本原因SQL Server 的数据库文件.mdf/.ldf存放在数据目录...\MSSQL\DATA下服务进程必须对这个目录拥有读取 写入权限才能打开数据库。三、操作步骤REM 以管理员身份运行以下所有命令REM 1. 停止 SQL Servernet stop MSSQL$SQL2016REM 2. 如果上面的命令失败使用 scsc stop MSSQL$SQL2016REM 3. 等待几秒timeout /t 5REM 4. 授权 DATA 文件夹icacls C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA /grant NT Service\MSSQL$SQL2016:F /TREM 5. 启动 SQL Servernet start MSSQL$SQL2016REM 6. 验证icacls C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA四、一键批处理脚本把下面内容保存为fix_sql_permission.bat右键 → 以管理员身份运行echo off REM REM SQL Server 服务无法启动 - DATA 目录权限修复 REM 必须以管理员身份运行 REM set DATA_DIRC:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA set SVCMSSQL$SQL2016 set SVC_ACCOUNTNT Service\MSSQL$SQL2016 echo [1/4] 停止服务 %SVC% ... net stop %SVC% if errorlevel 1 ( echo net stop 失败改用 sc stop ... sc stop %SVC% ) echo [2/4] 等待服务完全停止 ... timeout /t 5 /nobreak nul echo [3/4] 授予 DATA 目录权限给 %SVC_ACCOUNT% ... icacls %DATA_DIR% /grant %SVC_ACCOUNT%:F /T echo [4/4] 启动服务 %SVC% ... net start %SVC% echo. echo 权限验证 icacls %DATA_DIR% echo echo 修复完成可用 sc query %SVC% 确认状态。 pause
返回列表