原因说明:
从 Windows Server 2008 R2 / Windows 7 开始,SQL Server(尤其是默认实例)默认使用 虚拟服务账户(Virtual Account),格式为:
NT SERVICE\MSSQLSERVER ← 默认实例 NT SERVICE\MSSQL$YourInstanceName ← 命名实例(如 MSSQL$SQLEXPRESS)
这类账户是系统内置的、按服务隔离的虚拟账户,不会出现在“选择用户或组”对话框的搜索结果中,即使你点击“高级 → 查找位置”也找不到。
但这不代表它不存在——只要 SQL Server 正在以该账户运行,你就可以直接输入它的全名来添加权限。
✅ 正确添加权限的方法:
1. 右键数据库文件所在的文件夹 → 属性 → 安全 → 编辑 → 添加。
2. 在“输入对象名称来选择”框中,直接手动输入:
NT SERVICE\MSSQLSERVER
(如果是命名实例,比如实例名叫 SQL2014,则输入:NT SERVICE\MSSQL$SQL2014)
点击 “检查名称” 按钮:
如果名称正确,系统会自动加下划线(如 NT SERVICE\MSSQLSERVER 变成带下划线的可识别主体)。
如果提示找不到,请确认:
实例名是否正确(区分大小写不敏感,但拼写要对);
是否用了 $ 而不是其他符号;
当前操作系统是否支持虚拟账户(Win7/Server 2008 R2 及以上都支持)。
点击“确定”,然后赋予 “完全控制” 或至少 “修改 + 写入” 权限。
应用并关闭。
本文为宁若水!原创文章,转载无需和我联系,但请注明来自[若水]博客 www.lalaya.net
