在分離數據庫DatabaseName(暫且用DatabaseName代替該數據庫名)后,我將其數據文件以及日志文件移動到新增的磁盤上。然后附加該數據庫,結果報如下錯誤:
Database 'DatabaseName' cannot be upgraded because it is read-only or has read-only files. Make the database or files writeable, and rerun recovery.
Could not open new database 'DatabaseName'. CREATE DATABASE is aborted. (Microsoft SQL Server,錯誤: 3415)
通過VNC連接到該數據庫服務器,我檢查了該數據庫文件以及日志文件是否為只讀,但是事實是這些文件都具有讀寫權限。經過一番細致檢查后,才發現了問題的根本原因:
我首先在我機器上用SSMS工具通過域賬號A連接到數據庫服務器分離了該數據庫,這個域賬號擁有這個數據庫的sysadmin角色,但是並不是該服務器上的系統管理員,然后我通過VNC使用另外一個域賬號B移動了數據庫的文件,然后又在我機器使用SSMS去附加該數據庫,因為使用的是域賬號A,並沒有操作服務器上文件的權限。結果報如上錯誤。
於是我在該服務器上使用B賬號登陸數據庫,附加該數據庫,成功解決。后面我測試了一下,在該服務器上添加域賬號A,賦予其操作數據庫文件的權限,結果就不會出現上述錯誤。