有些朋友在 SQL Server Management Studio(SSMS)里想附加
.mdf
数据库文件时,一点就弹一个红色叉叉,提示:
这个报错常见于老系统或者把数据库放在 D 盘、E 盘的 NTFS 分区。原因很简单:数据库文件所在目录的权限设置跟当前登录的 SQL Server 服务账户对不上,操作系统直接拦住了。
5123 错误提示示例
为什么会这样?
很多人平时装完 SQL Server 就直接用,默认的服务账户一般是 Network Service
或者 MSSQLSERVER
,它不是管理员,所以它只能访问它有权限的目录。
一旦你把 .mdf
文件放到自定义的 D:\EWIN\数据库\ 这种路径,就容易出问题。特别是有些系统对 D 盘设置了访问限制,或者是别人拷给你的 MDF,权限跟随原电脑的。
正确做法:给文件放行
这个错误根本不需要重装数据库,也别把数据库随便扔 C 盘冒风险,只需要把 .mdf
文件或整个文件夹加上 Everyone 权限即可。
具体步骤如下:
-
找到
.mdf
文件,右键 → 属性 → 安全 → 编辑。 -
点击【添加】,输入
Everyone
→ 确定。 -
在权限栏勾选所有“允许”选项,包括读取、写入、完全控制等。
MDF 文件设置 Everyone 权限示例
-
如果只改文件还报错,就对文件夹做一遍相同的操作,让子文件继承权限。这样不管后续新生成的 LDF(日志文件)还是其他临时文件,SQL Server 都能正常读写。
经验小贴士
做完以上步骤,别忘了重启一下 SQL Server 服务再重新附加,有些老版本 SQL 有缓存,要么也可以把 SQL Server 以管理员身份运行试试。有时候就是一个小权限卡死整套流程,搞半天不值。
总结
5123 错误 99% 就是权限不足,改 Everyone 权限最直接。以后数据库要移动,也最好把权限设置带上,不然换机器或换盘符还得重来一次。
相关文章: