遇到這個錯誤,網絡上這個問題的解決方法很少,而且很多都是廢話,很像是沒人說得出理由的問題。我自己總結了下資料和想法,我覺得這個問題,根本上說,應該是一個sa用戶權限的問題,在sql2005里,sa不具有某些操作這樣的權限,那么,如何解決呢。除了更改sa的權限外(我不知道怎么修改,一直提示錯誤),個人覺得可以用windows身份驗證登陸,做完需要的操作之后,再重新使用sa帳戶登陸,這樣避開了這個錯誤的產生了。
以下先介紹下網絡上的一個解決方法:
附加數據庫 對于 服務器“***”失敗。 (Microsoft.SqlServer.Smo)
無法升級數據庫 ‘******’,因為它是只讀的,或者具有只讀文件。請將數據庫或文件設為可寫,然后重新運行恢復操作。 (Microsoft SQL Server,錯誤: 3415)
查看了數據庫文件,他們并沒有只讀屬性,在 SQL Server 2000 中附加都是一切正常的啊。點擊錯誤消息對話框的幫助鏈接
其實這個錯誤并不是文件只讀的問題,嚴格說應該是一個“權限”的問題,當前的 SQL Server 登錄帳號沒有對要附加文件的可寫權限,就會出現上述“只讀”的提示,解決辦法有以下幾種:
將要附加的文件拷貝到 SQL Server 默認的 Data 目錄,此時附加就會成功;
在登錄驗證時,選擇“Windows 身份驗證”,而不是“SQL Server 身份驗證”,即便你的登錄帳號是 sa;
如果一定要使用“SQL Server 身份驗證”,請更改登錄帳號的權限使其對要附加文件有完全操作權限;
將 SQL Server 服務的帳戶登錄身份由 Network Service 改為 Local Service;