今天用SQL Server 2008的attach功能附加一個資料庫,出了點問題,提示的錯誤是:
- Unable to open physical file "D:\Documents\Dalt\XXXX.mdf" Operating system error 5: "5(error not found)" (Microsoft SQL Server: Error 5120)".
記得以前做過類似的操作沒有出現什麼問題的,不知道為什麼會這樣,沒辦法在網上找解決方案,
http://social.msdn.microsoft.com/Forums/en/sqldatabaseengine/thread/9e563890-e35f-4524-82b9-3cca08fec5ed
msdn論壇裡說需要給.mdf,.ldf檔案添加一個使用者權限,運行下面的語句尋找這個許可權的名稱
- declare @sqlser varchar(20)
- EXEC master..xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key='SYSTEM\CurrentControlSet\Services\MSSQLSERVER',
- @value_name='objectname', @value=@sqlser OUTPUT
- PRINT 'Account Starting SQL Server Service:' +convert(varchar(30),@sqlser)
在我的機器上得到的結果是:Account Starting SQL Server Service:LocalSystem,然後右擊包含.mdf,.ldf檔案的檔案夾,切換到Security介面,添加LocalSystem使用者。在這裡我始終找不到這個使用者,如
不過這裡有一些使用者如:User(PRCHAZ01210\User),Administrator(PRCHAZ01210\User),我給後者添加了Full control許可權,再嘗試attach, 沒想到還成功了,也不知道上面的那個語句查出來的什麼資訊,等有時間再看看。