SQL2008 附加数据库提示5120错误解决方法
在使用 SQL Server 2008 附加数据库时,我们有时会遇到 "Error 5120: Cannot attach the database" 错误。这时候我们需要进行相应的解决方案。
问题原因
附加数据库时,由于 SQL Server 实例无权访问该文件夹,或该文件夹不可访问,因此会提示 "Error 5120: Cannot attach the database" 错误。
解决方案
1. 将 SQL Server 实例添加到目标文件夹的访问控制列表中
可以通过以下步骤将 SQL Server 实例添加到目标文件夹的访问控制列表中:
- 打开 Windows 资源管理器
- 找到目标文件夹
- 右键单击该文件夹,选择 "属性"
- 切换到 "安全" 选项卡
- 点击 "编辑" 按钮
- 点击 "添加" 按钮
- 在名称框中输入 "SQL Server (MSSQLSERVER)"(或 SQL Server 实例名称)和 "NETWORK SERVICE"
- 分配必要的权限,以便 SQL Server 实例可以访问该文件夹
2. 将 SQL Server 实例的服务账户添加到目标文件夹的访问控制列表中
可以通过以下步骤将 SQL Server 实例的服务账户添加到目标文件夹的访问控制列表中:
- 打开 Windows 资源管理器
- 找到目标文件夹
- 右键单击该文件夹,选择 "属性"
- 切换到 "安全" 选项卡
- 点击 "编辑" 按钮
- 点击 "添加" 按钮
- 在名称框中输入 SQL Server 实例的服务账户名称
- 分配必要的权限,以便 SQL Server 实例可以访问该文件夹
示例说明
示例一
假设我们要将位于 "D:\data" 文件夹下的 "mydatabase.mdf" 和 "mydatabase.ldf" 两个文件附加到 SQL Server 实例中,但是在使用 "sp_attach_db" 命令时,出现了 "Error 5120: Cannot attach the database" 错误。
解决方案:运行以下命令添加权限:
icacls "D:\data" /grant "NT SERVICE\MSSQLSERVER:(OI)(CI)F"
icacls "D:\data\mydatabase.mdf" /grant "NT SERVICE\MSSQLSERVER:(OI)(CI)F"
icacls "D:\data\mydatabase.ldf" /grant "NT SERVICE\MSSQLSERVER:(OI)(CI)F"
示例二
假设我们想要将 "E:\mydatabase.mdf" 和 "E:\mydatabase.ldf" 两个文件附加到名为 "SQL2008" 的 SQL Server 实例中,但是在使用 SQL Server Management Studio 时,出现了 "Error 5120: Cannot attach the database" 错误。
解决方案:将 SQL Server 实例的服务账户添加到文件夹 "E:\" 的访问控制列表中:
- 打开 Windows 资源管理器
- 找到目标文件夹 "E:\"
- 右键单击该文件夹,选择 "属性"
- 切换到 "安全" 选项卡
- 点击 "编辑" 按钮
- 点击 "添加" 按钮
- 在名称框中输入 "SQL2008" 和 "NT SERVICE\MSSQL$SQL2008"
- 分配必要的权限,以便 SQL Server 实例可以访问该文件夹。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SQL2008 附加数据库提示5120错误解决方法 - Python技术站