sql2005 附加数据库出错(错误号:5123)解决方法

解决sql2005 附加数据库出错(错误号:5123)的完整攻略

问题描述

在使用 SQL Server Management Studio (SSMS) 附加数据库时,出现错误消息“无法打开物理文件“XXXX.mdf”操作系统错误 5: "5(Access is denied.)"。”或者“无法打开物理文件“XXXX_log.ldf”操作系统错误 5: "5(Access is denied.)"。”错误号码为5123。

原因分析

出现5123错误常见的原因是SQL Server运行帐户没有足够的操作系统权限(例如没有写入权限或文件锁定权限)来访问和附加数据库文件。

解决方法

方法一:确认运行帐户权限是否正确

首先确认运行SQL Server服务的帐户是否已获得以下两个磁盘和文件夹上的正确权限。

  • 确保该用户帐户拥有数据库文件所在驱动器的文件夹、文件和共享权限。
  • 确保用户帐户拥有Transact-SQL中指定的默认数据库的权限。

要检查到 SQL Server 正在使用哪个帐户,请使用下列任意一种方法:

  • 在 SQL Server Configuration Manager 中,单击 SQL Server 服务选项卡以确定 SQL Server 是否在使用指定的帐户。
  • 创建一个 TestMdf.mdf 文件并使用管理员帐户在 SQL Server 中附加它。

方法二:更改实例级别权限

在更改实例级别权限方面,需要在 SQL Server 实例的更改日志(ERRORLOG)文件中搜索与错误消息相对应的条目。某些错误消息可能在 ERRORLOG 文件中有详细的描述。

1.请在 SQL Server 实例上运行以下 Transact-SQL 语句,将 master 数据库的 sysadmin 固定服务器角色的成员(例如自己的用户)添加到 tempdb 的 sysadmin 固定服务器角色。

USE [master] 
GO 
ALTER SERVER ROLE [sysadmin] ADD MEMBER [YourUserName] 
GO

注意:在确认更改实例级别权限的范围之前,请使用最高级别的安全性进行测试。

示例1

  1. 打开 SQL Server Management Studio。
  2. 在“对象资源管理器”中右键单击要附加的数据库,选择“属性”选项。
  3. 在“属性”对话框中,选择“文件”选项卡。
  4. 确认“[数据库].mdf”和“[数据库]_log.ldf”的文件路径,然后在 Windows 文件资源管理器中打开路径所在的文件夹。
  5. 右键单击文件夹,选择“属性”选项,并单击“安全”选项卡。
  6. 确认所需用户或组(例如SQL Server服务运行帐户),如何在文件夹中授予完全控制权限或修改/写入权限。
  7. 返回 SSMS中,尝试重新附加数据库。

示例2

  1. 确认当前 SQL Server 实例中使用的帐户。
  2. 打开 Windows 文件资源管理器,并定位要附加的数据库文件系统路径。
  3. 右键单击该文件夹,选择“属性”选项,并单击“安全”选项卡。
  4. 尝试使用前面确认的 SQL Server 使用的帐户(例如,将“NT服务\MSSQLSERVER”添加到可能具有写入权限的安全组中)授予写入权限,然后返回 SSMS并尝试重新附加数据库。

结论

以上是针对“sql2005 附加数据库出错(错误号:5123)”问题的完整攻略。如果通过上述方法无法解决问题,则可能需要针对具体错误进行更深入的调查。

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

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

相关文章

  • Oracle 计算时间格式平均值的sql 语句

    Oracle 计算时间格式平均值的 SQL 语句的攻略分为以下三个部分: 1.转换时间格式 在计算时间格式平均值前,需要将时间字符串转换为时间类型,然后进行计算。可以使用 Oracle 提供的 to_date 函数将字符串类型的时间转换为时间类型。 例如,假设数据表中的 time_column 字段存储的是时间字符串类型的数据,格式为 ‘YYYY-MM-DD…

    database 2023年5月21日
    00
  • Cassandra 和 CouchDB 的区别

    Cassandra和CouchDB是两种不同类型的NoSQL数据库。它们的设计目标和未来的使用场景不同。在下面的攻略中,我们将围绕以下四个方面来讲解它们的不同之处: 数据的存储方式 数据的一致性 数据的查询方式 数据的可扩展性 1. 数据的存储方式 Cassandra和CouchDB都是面向文档的数据库。但是它们的存储方式是不同的。 Cassandra使用一…

    database 2023年3月27日
    00
  • 基于oracle expdp命令的使用详解

    基于oracle expdp命令的使用详解 介绍 expdp是Oracle 10g及以上版本中自带的备份和导出工具,用于将数据从Oracle数据库导出到其他数据库或文件中。它是Oracle数据传输的标准选择,并且提供了比传统exp更好的灵活性和更好的性能。 命令格式 expdp命令的语法如下所示: expdp username/password@connec…

    database 2023年5月21日
    00
  • Redhat 6.5下MySQL5.6集群配置方法完整版

    Redhat 6.5下MySQL5.6集群配置方法完整版 1. 环境准备 1.1 安装MySQL 首先需要为每个节点安装MySQL5.6,可以从MySQL官网下载对应的rpm文件进行安装。具体命令如下: rpm -ivh MySQL-server-5.6.30-1.el6.x86_64.rpm rpm -ivh MySQL-client-5.6.30-1.e…

    database 2023年5月22日
    00
  • SQL查询的底层运行原理深入分析

    SQL查询的底层运行原理深入分析 什么是SQL查询 SQL(Structured Query Language,结构化查询语言)是一种用于操作关系型数据库的编程语言,我们可以使用SQL语言进行数据增删改查等操作。SQL查询就是用SQL语言查询数据的过程。 SQL查询的底层运行原理 SQL查询的底层运行原理主要分为以下几个步骤: 语法分析与解析 当我们输入SQ…

    database 2023年5月19日
    00
  • 如何在Python中插入数据到Microsoft SQL Server数据库?

    以下是如何在Python中插入数据到Microsoft SQL Server数据库的完整使用攻略,包括安装pyodbc库、连接Microsoft SQL Server数据库、插入数据等步骤。同时,提供了两个示例以便更好理解如何在Python中插入数据到Microsoft SQL Server数据库。 步骤1:安装pyodbc库 在Python中,我们可以使用…

    python 2023年5月12日
    00
  • mysql的join查询和多次查询方式比较

    MySQL是一个关系型数据库管理系统,它支持多种查询方式,其中最常用的两种是join查询和多次查询。 什么是join查询 Join查询是指从两个或多个表中按照指定的条件组合出一个结果集的查询方式。它的语法结构为: SELECT 列名 FROM 表1 JOIN 表2 ON JOIN条件 其中,JOIN条件是指两个表之间的连接条件,常见的连接方式包括INNER …

    database 2023年5月19日
    00
  • mysql 前几条记录语句之(limit)

    MySQL是一种流行的关系型数据库管理系统,其中LIMIT子句是MySQL SELECT查询语句的一部分,可用于限制返回结果的数量。在本文中,作者将详细讲解MySQL LIMIT子句的使用方法和示例。 什么是MySQL LIMIT语句 MySQL LIMIT语句用于限制返回结果集的数量。此语句通常与SELECT查询一起使用,以限制返回记录以进行更快的访问。L…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部