SQL2008 附加数据库提示5120错误解决方法

SQL2008 附加数据库提示5120错误解决方法

在使用 SQL Server 2008 附加数据库时,我们有时会遇到 "Error 5120: Cannot attach the database" 错误。这时候我们需要进行相应的解决方案。

问题原因

附加数据库时,由于 SQL Server 实例无权访问该文件夹,或该文件夹不可访问,因此会提示 "Error 5120: Cannot attach the database" 错误。

解决方案

1. 将 SQL Server 实例添加到目标文件夹的访问控制列表中

可以通过以下步骤将 SQL Server 实例添加到目标文件夹的访问控制列表中:

  1. 打开 Windows 资源管理器
  2. 找到目标文件夹
  3. 右键单击该文件夹,选择 "属性"
  4. 切换到 "安全" 选项卡
  5. 点击 "编辑" 按钮
  6. 点击 "添加" 按钮
  7. 在名称框中输入 "SQL Server (MSSQLSERVER)"(或 SQL Server 实例名称)和 "NETWORK SERVICE"
  8. 分配必要的权限,以便 SQL Server 实例可以访问该文件夹

2. 将 SQL Server 实例的服务账户添加到目标文件夹的访问控制列表中

可以通过以下步骤将 SQL Server 实例的服务账户添加到目标文件夹的访问控制列表中:

  1. 打开 Windows 资源管理器
  2. 找到目标文件夹
  3. 右键单击该文件夹,选择 "属性"
  4. 切换到 "安全" 选项卡
  5. 点击 "编辑" 按钮
  6. 点击 "添加" 按钮
  7. 在名称框中输入 SQL Server 实例的服务账户名称
  8. 分配必要的权限,以便 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:\" 的访问控制列表中:

  1. 打开 Windows 资源管理器
  2. 找到目标文件夹 "E:\"
  3. 右键单击该文件夹,选择 "属性"
  4. 切换到 "安全" 选项卡
  5. 点击 "编辑" 按钮
  6. 点击 "添加" 按钮
  7. 在名称框中输入 "SQL2008" 和 "NT SERVICE\MSSQL$SQL2008"
  8. 分配必要的权限,以便 SQL Server 实例可以访问该文件夹。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SQL2008 附加数据库提示5120错误解决方法 - Python技术站

(0)
上一篇 2023年5月21日
下一篇 2023年5月21日

相关文章

  • Oracle在PL/SQL中嵌入SQL语句

    嵌入SQL语句是PL/SQL中最重要的特性之一,它允许我们使用SQL来操作关系型数据库。要在PL/SQL中嵌入SQL语句,需要使用SQL语句的执行命令EXECUTE IMMEDIATE或SELECT INTO语句。 一、使用 EXECUTE IMMEDIATE 命令执行 SQL 语句 执行一个简单的SQL查询 DECLARE v_salary NUMBER(…

    database 2023年5月21日
    00
  • MySQL修改字符集步骤详解

    MySQL的字符集决定了数据库和表中能够存储哪些字符,包括数据类型、排序规则、大小写敏感性等。修改MySQL字符集的步骤如下: 确定当前数据库和表的字符集 使用以下SQL语句确定当前数据库和表的字符集: SHOW CREATE DATABASE database_name; SHOW CREATE TABLE table_name; 修改数据库和表的字符集 …

    MySQL 2023年3月10日
    00
  • 10个mysql中select语句的简单用法

    10个MySQL中SELECT语句的简单用法 MySQL的SELECT语句是最常用的SQL语句之一,用于从表中检索数据。以下是10个MySQL SELECT语句的简单用法。 1. 选择所有列 使用以下SELECT语句选择表中的所有列: SELECT * FROM tablename; *通配符表示所有列。 2. 选择特定列 使用以下SELECT语句选取特定列…

    database 2023年5月21日
    00
  • mysql视图之创建视图(CREATE VIEW)和使用限制实例详解

    当我们需要从数据库中查询某些数据时,有时候我们需要的数据需要从多个表中关联查询,这时就可以使用mysql视图,mysql视图就是一种虚拟的表,它并不真实存在于数据库中,但是我们可以查询它,它是由一条或者多条SELECT语句组成的,查询它就相当于执行这些SELECT语句。 创建视图 我们可以使用CREATE VIEW语句来创建视图,CREATE VIEW语句的…

    database 2023年5月21日
    00
  • 如何为Redis中list中的项设置过期时间

    Redis是一个伟大的工具,用来在内存中存储列表是很合适的。 不过,如果你想要快速搜索列表,同时需要让列表中每项都在一定时间后过期,应该怎么做呢? 首先,当然不能使用不同的类似的key存储数据,然后使用keys命令来获取所有类似key的数据。这样的开销是不可接受的。 Redis并没有直接提供方法做这件事,但是这是可以做到的!虽然最后用的未必是Redis的Li…

    Redis 2023年4月13日
    00
  • Windows server 2008 R2(win7)登陆sqlplus错误ORA-12560和ORA-12557的解决方法

    下面是针对“Windows server 2008 R2(win7)登陆sqlplus错误ORA-12560和ORA-12557的解决方法”的完整攻略: 问题描述 在 Windows server 2008 R2 或 win7 操作系统下连接 Oracle 数据库时,可能会出现 ORA-12560 或 ORA-12557 错误。 ORA-12560:TNS …

    database 2023年5月21日
    00
  • 在Centos 8.0中安装Redis服务器的教程详解

    在Centos 8.0中安装Redis服务器的教程详解 1. 获取Redis软件包 在Centos 8.0中,可以通过下列命令获取Redis软件包: sudo dnf install redis 2. 启动Redis服务 在Centos 8.0中,可以使用以下命令启动Redis服务: sudo systemctl start redis 如果您想要Redis…

    database 2023年5月22日
    00
  • MySQL 多列索引优化小记

    MySQL 5.6.30 由于爬虫抓取的数据不断增多,这两天在不断对数据库以及查询语句进行优化,其中一个表结构如下: CREATE TABLE `newspaper_article` ( `id` varchar(50) NOT NULL COMMENT ‘编号’, `title` varchar(190) NOT NULL COMMENT ‘标题’, `a…

    MySQL 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部