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

yizhihongxing

解决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日

相关文章

  • MySQL和Oracle批量插入SQL的通用写法示例

    MySQL和Oracle是两个流行的关系型数据库系统,它们之间的一些SQL语句操作和语法有些不同,但是在批量插入数据时,可以采用一些通用写法来提高效率。下面就来详细讲解MySQL和Oracle批量插入SQL的通用写法示例的完整攻略。 一、背景知识 在介绍批量插入SQL的通用写法之前,我们需要了解几个背景知识: MySQL和Oracle都支持使用JDBC操作数…

    database 2023年5月21日
    00
  • SQL Server 2005附加数据库时Read-Only错误的解决方案

    以下是详细的攻略。 问题描述 在将 SQL Server 2005 数据库附加到实例时,可能会遇到以下错误: Msg 262, Level 14, State 1, Line 1 CREATE DATABASE permission denied in database ‘master’. Msg 1813, Level 16, State 2, Line …

    database 2023年5月21日
    00
  • MySQL一些常用高级SQL语句详解

    MySQL一些常用高级SQL语句详解 MySQL 是一个流行的关系型数据库管理系统,支持各种复杂的查询以及数据操作,本文将介绍一些常用的高级SQL语句,帮助读者更加深入了解 MySQL。 1. UNION UNION 用于合并两个或多个 SELECT 语句的结果集,要求每个语句返回的列数和类型必须相同,而且必须按照顺序正确选择列,否则会造成错误的结果。示例:…

    database 2023年5月19日
    00
  • Oracle生成不重复票号与LPAD,RPAD与NEXTVAL函数解析

    下面是关于“Oracle生成不重复票号与LPAD,RPAD与NEXTVAL函数解析”的完整攻略。 1. 生成不重复的票号 在 Oracle 中,可以通过以下方式生成不重复的票号: 创建一个带自增列的表,例如: CREATE TABLE ticket_num ( id NUMBER PRIMARY KEY, ticket_no VARCHAR2(20) ); …

    database 2023年5月21日
    00
  • ecmall二次开发 直接实例化mysql对象

    $db = &db(); // 第一步赋值数据库类库, $db->query(sql); // 第二步执行mysql 语句; 常用的数据库函数: 得到一行数据 $user=$db->getrow(“select * from ecm_member where user_id=111”); print_r($user); 得到一列数据 $u…

    MySQL 2023年4月13日
    00
  • Mysql基础入门 轻松学习Mysql命令

    Mysql基础入门 轻松学习Mysql命令 Mysql是一种常用的关系型数据库管理系统,本文将带你入门学习Mysql的基本命令。 安装Mysql 首先需要安装Mysql,可以从官方网站上下载并安装适合自己操作系统的版本。在安装完成后,可以通过以下命令登录到Mysql的命令行界面: mysql -u username -p 其中username为用户名。执行上…

    database 2023年5月21日
    00
  • MySQL InnoDB的3种行锁定方式

    MySQL InnoDB引擎提供了三种行锁定方式:共享锁(S锁)、排它锁(X锁)和意向锁(IS锁和IX锁)。 共享锁(S锁) 共享锁(S锁)是用来保证读取的数据在事务间的一致性。多个事务可以同时获取共享锁定,因为他们都只是读取数据而不做任何修改。但是,一个事务获取了共享锁之后,其他事务便不能再对该行加排它锁。 语法:SELECT … FOR SHARE …

    MySQL 2023年3月10日
    00
  • Mysql update多表联合更新的方法小结

    题目:Mysql update多表联合更新的方法小结 1. 联合更新的基本语法 Mysql的联合更新语法如下: UPDATE table1 INNER JOIN table2 ON table1.key = table2.key SET table1.column = new_value, table2.column = new_value; 这个语句将会更…

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