2012-06-20 62 views
0

我想給FILELISTONLY從.bak文件恢復,並正在以下錯誤恢復FILELISTONLY:錯誤從.bak文件

Msg 3201, Level 16, State 2, Line 1 Cannot open backup device 'C:\Users...\myFile.bak'. Operating system error 5(Access is denied.).

該文件最初被封鎖,但我暢通它,這樣應該不是問題。

回答

2

錯誤消息準確解釋發生了什麼:您已將.BAK文件放入SQL Server服務帳戶無權訪問的文件夾中。

您可以通過向SQL Server服務帳戶授予對您的配置文件文件夾的訪問權限來「解決」此問題,但這是對安全最佳做法的不必要違反。

將文件移動到SQL Server服務帳戶已具有本地訪問權限的位置(如備份或數據目錄)會簡單得多。

SELECT DISTINCT SUBSTRING(physical_name, 1, LEN(physical_name) 
    - CHARINDEX('\', REVERSE(physical_name)) + 1) 
FROM [master].sys.master_files 
WHERE [type] = 0; 

如果您備份的任何數據庫(讓我們希望你!),你可以:您可以通過查看下面的查詢結果找到data文件夾(可能有多個有效的位置)找出一些有效的備份位置是這樣的:

SELECT DISTINCT SUBSTRING(physical_device_name, 1, LEN(physical_device_name) 
    - CHARINDEX('\', REVERSE(physical_device_name)) + 1) 
FROM msdb.dbo.backupmediafamily; 

這些當然不拿東西到諸如只讀數據文件的只讀卷,卷的SQL Server可能會訪問,但你不t,.BAK文件沒有足夠的可用空間的卷,或過去​​已使用但不再存在或無法訪問的備份位置。