SQL Server 2005 Express附加(Attach)的数据库为“只读”的解决方法

来源:互联网 发布:手机淘宝店铺背景音乐 编辑:程序博客网 时间:2024/06/04 18:04
在许多数据库操作的源代码中,包含数据库,但是在“附加”数据库时候出现如下提示:
标题: Microsoft SQL Server Management Studio
------------------------------
附加数据库 对于 服务器“KM”失败。  (Microsoft.SqlServer.Smo)
其他信息:
执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)
------------------------------
无法升级数据库 'db02',因为它是只读的,或者具有只读文件。请将数据库或文件设为可写,然后重新运行恢复操作。 (Microsoft SQL Server,错误: 3415)
则说明数据库为只读属性
解决方法:
1.打开SQL Server Configuration Manager 选择 SQL Server 2005 服务/SQL Server (MSSQLSERVER)
 
SQL Server 2005 Express附加(Attach)的数据库为“只读”的解决方法 (无法附加数据库) - 伊利耶的天空 - 伊利野的天空的博客
 
 
 2.打开SQL Server (MSSQLSERVER)属性,并且将“内置账户”选择为“本地系统” 
 
 
SQL Server 2005 Express附加(Attach)的数据库为“只读”的解决方法 (无法附加数据库) - 伊利耶的天空 - 伊利野的天空的博客
在内置帐号处,把“网络服务”改成“本地系统”,重新启动SQL Server 2005 Express 后,再附加(Attach)数据库一切正常。

总结:之所以附加(Attach)上的数据库为“只读”,是因为启动SQL Server 的默认的启动帐号“网络服务”对所附加(Attach)的数据库文件的权限不够造成的。

经测试SQL Server 2008可以采用同样的解决方法。