标题: Microsoft SQL Server Management Studio ------------------------------ 服务器 "YUE" 的 附加数据库 失败。 (Microsoft.SqlServer.Smo) 有关帮助信息,请单击: https://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=16.100.46041.41+(SMO-master-A)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=附加数据库+Server&LinkId=20476 ------------------------------ 其他信息: 执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo) ------------------------------ 无法打开物理文件“D:\Graduation project\db\hospitals.mdf”。操作系统错误 5:“5(拒绝访问。)”。 CREATE DATABASE 失败。无法创建列出的某些文件名。请查看相关错误。 (Microsoft SQL Server,错误: 5120) 有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=15.00.2000&EvtSrc=MSSQLServer&EvtID=5120&LinkId=20476 ------------------------------ 按钮: 确定 ------------------------------
时间: 2025-03-18 12:17:07 浏览: 98
<think>好的,我现在需要解决用户在Microsoft SQL Server Management Studio中附加数据库时遇到的错误,具体是操作系统错误5(拒绝访问)导致的CREATE DATABASE失败,错误代码5120。根据用户提供的引用内容,我需要整理出解决方案。
首先,用户已经提供了四个引用,其中引用[1]、[2]、[3]都提到了错误5120,而引用[4]提到了可能的修复方法,包括权限设置和数据库修复。我需要结合这些信息,给出步骤化的解决方案。
首先,权限问题是一个常见原因。引用[1]提到添加Authenticated Users并赋予完全控制权限,这可能是一个关键步骤。同时,引用[4]提到关闭SQL Server服务并移动文件,这可能涉及到文件权限或路径是否正确的问题。此外,单用户模式和数据库修复命令也可能有效。
接下来需要组织这些步骤,确保逻辑清晰。可能的结构是:
1. 检查文件权限:确保SQL Server服务账户和Authenticated Users有权限访问文件。
2. 关闭SQL Server服务并移动文件到正确位置。
3. 使用T-SQL修复数据库。
4. 其他可能的解决方案,比如检查文件是否被占用,路径是否正确等。
同时,需要注意用户可能不熟悉如何操作权限设置,所以需要详细说明步骤,比如如何找到文件属性,添加用户,设置权限等。另外,引用[4]中的T-SQL代码可能需要解释,避免用户误操作。
还需要考虑不同版本的SQL Server可能路径不同,比如默认路径是否为C:\Program Files\Microsoft SQL Server...,或者用户自定义的位置。此外,提醒用户在操作前备份数据库文件,以防万一。
最后,生成相关问题,比如如何预防此类错误,其他常见附加错误,如何迁移数据库文件等,帮助用户扩展知识。</think>### 逐步解决方案:SQL Server附加数据库失败(错误5120,拒绝访问)
#### 1. **检查文件权限**
- **步骤**:
1. 找到待附加的数据库文件(`.mdf`和`.ldf`)。
2. 右键文件 → 属性 → **安全**选项卡 → 点击**编辑**。
3. 添加以下用户/组并分配**完全控制**权限:
- `Authenticated Users`
- `SQL Server服务账户`(通常为`NT Service\MSSQLSERVER`,若为命名实例则为`NT Service\MSSQL$实例名`)[^1][^2][^3]。
4. 点击**应用**并确认权限生效。
#### 2. **关闭SQL Server服务并移动文件**
- **步骤**:
1. 打开**SQL Server配置管理器** → 停止相关SQL Server服务。
2. 将数据库文件移动到SQL Server默认数据目录(如`C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA`)。
3. 重新启动SQL Server服务[^4]。
#### 3. **使用T-SQL附加数据库(替代方法)**
- **步骤**:
1. 在SSMS中新建查询窗口,执行以下命令:
```sql
CREATE DATABASE [YourDBName]
ON (FILENAME = 'C:\Path\To\YourDB.mdf'),
(FILENAME = 'C:\Path\To\YourDB.ldf')
FOR ATTACH;
```
2. 若附加失败,尝试修复数据库:
```sql
ALTER DATABASE [YourDBName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DBCC CHECKDB([YourDBName], REPAIR_ALLOW_DATA_LOSS);
DBCC CHECKDB([YourDBName], REPAIR_REBUILD);
ALTER DATABASE [YourDBName] SET MULTI_USER;
```
注意:`REPAIR_ALLOW_DATA_LOSS`可能导致数据丢失,需提前备份。
#### 4. **其他可能原因**
- **文件被占用**:确保无其他程序(如文本编辑器)打开数据库文件。
- **路径错误**:检查文件路径是否包含特殊字符或过长(建议使用简短英文路径)。
- **文件损坏**:若上述方法无效,尝试从备份恢复数据库。
---
### 相关问题
1. 如何避免SQL Server附加数据库时出现权限问题?
2. 错误5120与错误3415有什么区别?
3. 如何将数据库文件迁移到新的SQL Server实例?
---
**引用说明**
[^1]: 通过添加`Authenticated Users`权限解决访问被拒绝问题。
[^2]: 错误5120的直接原因是操作系统权限限制。
: 文件路径或名称错误也可能触发此错误。
: 使用T-SQL修复命令需谨慎操作并备份数据。
阅读全文
相关推荐




















