我已經閱讀了許多不同的方法和解決方案,試圖用擴展存儲過程xp_delete解決問題時追求多個人。 解決方案如下:
- 配置SSIS維護任務時,務必在擴展名中沒有句點(。)。
- 如果每個數據庫備份都存在,請務必單擊包含第一級子文件夾。
- 一定要點擊頂部的備份文件。維護任務確實檢查文件類型。對於數據庫備份,我相信它會檢查備份文件頭。
在我的情況中,以上所有都是正確的。在網上幾乎沒有評論,其中一些人說例行xp_delete是越野車。
當備份文件沒有被刪除時,我提取了用於維護的SQL並從SSMS運行它。由此產生的消息是該文件不是一個SQL Server備份文件。此消息是錯誤的,因爲備份可以成功恢復,從而產生可操作的數據庫。
用於驗證數據庫中的數據庫的命令爲:
RESTORE HEADERONLY FROM DISK = N'<file path\filename>.Bak'
RESTORE VERIFYONLY FROM DISK = N'<file path\filename>.bak'
兩個上述命令所指示的備份文件是有效的。
接下來,我打開事件查看器,發現指示連接管理器存在登錄錯誤的消息。這很奇怪,因爲我已經驗證了與測試連接按鈕的連接。這些錯誤與我創建的任何帳戶無關。
事件查看消息:
*The description for Event ID 17052 from source MS SQL SERVER cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer. If the event originated on another computer, the display information had to be saved with the event.
下面的信息包括與所述事件:
Severity: 16 Error:18456, OS: 18456 [Microsoft][SQL Server Native Client 11.0][SQL Server]Login failed for user 'domain\servername$'.*
接着我登錄到其中xp_delete是正常的機器。在查看活動目錄並未找到系統帳戶之後,我繼續前往事件查看器以查找類似的消息。在這裏,很明顯domain \ server $的帳戶被映射到系統安全性。
下一步是比較數據庫安全性,其中xp_delete對數據庫不起作用。在xp_delete不起作用的數據庫中有2個安全漏洞登錄。 的2名失蹤登錄爲: NT AUTHORITY \ SYSTEM NT服務\ MSSQLSERVER
加入NT服務\ MSSQLSERVER後,xp_delete成功合作。
測試的一種方法是使用維護任務刪除單個文件。
Tomalak:那沒用。 – GernBlandston 2008-10-17 16:02:45
我讀過我剛剛發佈的摘要後,我想到了。一個錯誤的論壇帖子指出了我的第一個答案的方向。 – Tomalak 2008-10-17 16:04:58