簡體   English   中英

SQL Server備份到UNC

[英]Sql Server Backup to UNC

我已經在SQL Server 2005服務器上創建了維護計划。 備份應寫入另一台服務器。 我為此使用UNC路徑。 運行SQL Agent作業的用戶對另一台服務器具有完全訪問權限。 在兩台服務器上都是管理員。

問題是該語句失敗(具有正確的課程服務器名稱):

執行master.dbo.xp_create_subdir N'\\\\ servername \\ c $ \\ SqlServerBackup \\ Test'

我得到的錯誤是:消息22048,級別16,狀態1,行0 xp_create_subdir()返回了錯誤123,“文件名,目錄名或卷標簽語法不正確。”

有誰知道可能是什么問題?

我自己遇到了這個問題,但上述解決方案都不夠清晰,我想我會發布一個更清晰的答案。 該錯誤實際上與語法無關-完全與權限有關。 這里重要的是嘗試登錄以創建目錄的是SQL Server服務帳戶而不是SQL Server代理帳戶。 您可以在目標服務器上檢查事件查看器,並查看安全日志,以查看來自另一台計算機上的SQL Server帳戶的失敗登錄(我以本地管理員身份運行)。

若要解決此問題,請將您的SQL Server服務帳戶設置為允許寫入遠程共享的域用戶。 我希望SQL Server代理能夠使用其自己的憑據來執行這些備份操作,但是顯然不能!

SQL Agent實際上並不運行備份,它能夠在執行備份的SQL Server中執行命令。 因此,SQL Server服務帳戶是需要UNC共享權限的帳戶。

但是,我認為xp_create_subdir過程存在實際問題。 我將停止使用維護計划,因為有時我會得到完全相同的錯誤。 沒有權限在更改,它“通常”有效,但是“通常”不會減少權限。

如果您以“ LocalSystem”身份運行SQL Server和/或SQL Server代理服務,但無法將SQL Server和SQL Server代理帳戶更改為“域帳戶”,請嘗試以下操作:

  1. 如果您使用SQL Server代理代理帳戶/憑據執行部分任務並使用SQL代理進行備份,請在UNC備份目標上的共享和NTFS權限下,分別授予“完全/修改”權限,因為它們確實在在建立連接過程中或至少在我嘗試過的SQL備份作業中(至少根據安全日志)有一點。 不幸的是,或者沒有辦法,或者我還沒有找到一種方法來使用純SQL代理任務可以執行的代理帳戶來執行某些SQL Server服務任務(如User55852和ZaDDaZ在之前的文章中所述)。

  2. 在共享和NTFS權限下的UNC備份目標服務器上,分別向SQL服務器(源服務器)的計算機帳戶授予“完全/修改”權限。


這對於SQL Services以“ LocalSystem”運行但需要進入另一台服務器以刪除備份的情況確實適用。

當然,最佳實踐表明,對於每個SQL Service,它們應該擁有自己的域帳戶,且特權最少,這不是添加服務器的計算機帳戶,該計算機帳戶公開了對共享的訪問權限超過了應有的權限-本質上是任何執行作為計算機帳戶或“ LocalSystem”。

我在維護計划歷史記錄中看到此錯誤。

操作系統錯誤3(系統找不到指定的路徑。)。 BACKUP DATABASE異常終止。”。可能的失敗原因:查詢問題,“ ResultSet”屬性未正確設置,參數未正確設置或連接未正確建立。

我嘗試運行備份步驟的第一步,在該步驟中共享創建目錄。 我收到訪問被拒絕的錯誤。

最后,我授予了運行SQL Agent並成功運行維護計划的服務帳戶的全部權限。

檢查運行SqlAgent的帳戶。 通常它是system \\ NetworkService ant,它在其他計算機上沒有訪問權限。

暫時向UNC路徑上的每個人授予寫權限,或者在“控制面板/服務”中更改用於SqlAgent的帳戶。

在服務器名稱之前是否不缺少雙反斜杠?

我已經備份了UNC的大部分時間。 確保不是與運行sql server和sql agent的帳戶有關的權限問題。 我不會備份到隱藏的管理員共享,也許是導致問題的原因是$。 創建一個共享並備份。 \\ server \\ share NOT \\ server \\ c $ \\ folder

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM