解决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
- 打开 SQL Server Management Studio。
- 在“对象资源管理器”中右键单击要附加的数据库,选择“属性”选项。
- 在“属性”对话框中,选择“文件”选项卡。
- 确认“[数据库].mdf”和“[数据库]_log.ldf”的文件路径,然后在 Windows 文件资源管理器中打开路径所在的文件夹。
- 右键单击文件夹,选择“属性”选项,并单击“安全”选项卡。
- 确认所需用户或组(例如SQL Server服务运行帐户),如何在文件夹中授予完全控制权限或修改/写入权限。
- 返回 SSMS中,尝试重新附加数据库。
示例2
- 确认当前 SQL Server 实例中使用的帐户。
- 打开 Windows 文件资源管理器,并定位要附加的数据库文件系统路径。
- 右键单击该文件夹,选择“属性”选项,并单击“安全”选项卡。
- 尝试使用前面确认的 SQL Server 使用的帐户(例如,将“NT服务\MSSQLSERVER”添加到可能具有写入权限的安全组中)授予写入权限,然后返回 SSMS并尝试重新附加数据库。
结论
以上是针对“sql2005 附加数据库出错(错误号:5123)”问题的完整攻略。如果通过上述方法无法解决问题,则可能需要针对具体错误进行更深入的调查。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:sql2005 附加数据库出错(错误号:5123)解决方法 - Python技术站