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日

相关文章

  • Redis3.2开启远程访问详细步骤

    下面我来为您讲解 Redis 3.2 开启远程访问的详细步骤。一共分为以下几步: 1. 修改 Redis 配置文件 要让 Redis 支持远程访问,需要修改 Redis 的配置文件redis.conf。在该文件中找到注释掉的 bind 配置项,并修改为下面的形式: bind 0.0.0.0 该配置项表示 Redis 服务器接受来自任意 IP 的连接。如果想要…

    database 2023年5月22日
    00
  • centOS安装mysql5.7详细教程

    CentOS安装MySQL 5.7详细教程 本教程介绍CentOS系统下安装MySQL 5.7的详细步骤。 环境准备 在开始安装过程前,请确保你的CentOS系统已经安装了epel-release仓库和wget工具,如果没有,请先执行以下命令进行安装: sudo yum -y install epel-release wget 下载MySQL RPM包 访问…

    database 2023年5月22日
    00
  • 在oracle 数据库查询的select 查询字段中关联其他表的方法

    查询中关联其他表通常使用“JOIN”查询关键字。 首先,在SELECT查询中,需要关联其他表的时候,需要和所查询的数据表制定表别名。 例如,以下两个表: 表一: id name 1 张三 2 李四 3 王五 表二: id gender 1 男 2 女 需要查询姓名和性别的数据时,此时就需要将表一和表二进行关联查询: SELECT a.name, b.gend…

    database 2023年5月21日
    00
  • oracle数据排序后获取前几行数据的写法(rownum、fetch方式)

    当我们需要从一张表中获取前几行数据时,我们可以使用Oracle提供的两种方式——rownum和fetch方式。 1. ROWNUM方式获取前几行数据 ROWNUM是oracle数据库中的伪列,在查询时系统自动给出其行号。 获取前几行数据时,我们可以通过使用rownum进行筛选,比如: SELECT column1, column2, column3 FROM…

    database 2023年5月18日
    00
  • 使用达思SQL数据库修复软件修复中了勒索病毒加密的数据库教程

    使用达思SQL数据库修复软件修复中了勒索病毒加密的数据库是一个比较复杂的过程,需要掌握一些基本的技能和步骤。下面我们将详细介绍如何操作: 1. 下载并安装达思SQL数据库修复软件 首先,需要在官方网站下载并安装达思SQL数据库修复软件。该软件可以修复各种类型的数据库,包括SQL Server、Oracle、Access等。建议下载并安装最新版本,以便获得更好…

    database 2023年5月21日
    00
  • CentOS7安装PHP7 Redis扩展的方法步骤

    下面是CentOS7安装PHP7 Redis扩展的方法步骤的完整攻略: 准备工作 在开始安装前,请确保您的CentOS7操作系统已经安装了PHP7以及Redis服务。 安装PHP7 Redis扩展 首先安装Redis扩展需要使用PECL,如果您没有安装PECL,请使用以下命令来安装: yum install php-pear 然后使用以下命令安装phpred…

    database 2023年5月22日
    00
  • 关系型数据库的功能依赖和规范化的基础知识

    介绍 关系型数据库(Relational Database)是指采用了关系模型来组织数据的数据库,其最为核心的概念是关系和关系上的操作,关系是由一组列组成的数据表,每列描述了一个属性,每行则描述了一个记录。 在关系型数据库中,由于数据间的相关性,存在某些属性可以通过其他属性来推导出来,这就是数据库中的数据依赖性。 功能依赖 在关系模型下,属性之间存在着一定的…

    database 2023年3月27日
    00
  • php,redis分布式锁防并发

        解决死锁   如果只用SETNX命令设置锁的话,如果当持有锁的进程崩溃或删除锁失败时,其他进程将无法获取到锁,问题就大了。 解决方法是在获取锁失败的同时获取锁的值,并将值与当前时间进行对比,如果值小于当前时间说明锁以过期失效,进程可运用Redis的DEL命令删除该锁。 setnx的作用和memcache的add方法类似 class rediss { …

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