資料參考來源:http://blog.sina.com.cn/s/blog_852c6e6301017ebz.html
今天在將一個 SQL Server 2008 數據庫附加到 SQL Server 2008R2時出現如下的錯誤:附加數據庫對於服務器失敗(Microsoft.SqlServer.Smo),無法升級數據庫test,因為它是只讀的,或者具有只讀文件。請將數據庫或文件設為可寫,然后重新運行恢復操作。 (Microsoft SQL Server,錯誤: 5120)
查看了數據庫文件,他們並沒有只讀屬性,在 SQL Server 2008 中附加都是一切正常的啊。
經查閱資料,發現並不是文件只讀的問題,嚴格說應該是一個“權限”的問題,當前的SQL Server登錄帳號沒有對要附加文件的可寫權限,就會出現上述“只讀”的提示,解決辦法有以下幾種:
1.將要附加的文件拷貝到 SQL Server 默認的 Data 目錄,此時附加就會成功;
2.在登錄驗證時,選擇“Windows身份驗證”,而不是“SQL Server身份驗證”,即便你的登錄帳號是sa;
3.如果一定要使用“SQL Server 身份驗證”,請更改登錄帳號的權限使其對要附加文件有完全操作權限;
4.將 SQL Server 服務的帳戶登錄身份由 Network Service 改為 Local Service.