Sql-Server

查找 SQL Server 服務在哪個帳戶下執行 BACKUP

  • August 2, 2016

我們的 DBA 出局了,我正在嘗試將我們的(遠端)開發數據庫備份到 UNC 路徑。我在以特定 Windows 域帳戶(例如CORP\myUser)登錄 Management Studio 時執行備份操作。我檢查了這個域帳戶對 UNC 路徑具有 FULL CONTROL 權限\\nameOfMachine\backup\

當我嘗試執行以下操作時CORP\myUser

BACKUP DATABASE [DEV] TO  DISK = N'\\nameOfMachine\backup\dev.bak' WITH COPY_ONLY, INIT;

我收到錯誤

Cannot open backup device '\\nameOfMachine\backup\dev.bak'. 
Operating system error 5(Access is denied.).

這似乎表明 SQL Server 用於執行備份命令的任何帳戶都無權訪問該 UNC 路徑。

我沒有辦法 RDP 到開發數據庫伺服器並找出 SQL Server 使用哪個帳戶來執行上面的備份命令。有沒有辦法使案例如動態管理視圖從 Management Studio 中找出這一點?

如果您在某個 Windows/SQL Server 帳戶下執行 BACKUP 查詢,實際上是 SQL Server 代理帳戶“執行”BACKUP 並且需要對 UNC 路徑的完全控制權限。因此,您必須能夠允許該帳戶(或每個人)對該路徑具有完全控制權限。要找出 SQL Server 代理以哪個帳戶執行,請查詢sys.dm_server_services。它要求您(或其他人)在伺服器上具有 VIEW SERVER STATE 權限。

BACKUP將在模擬上下文下訪問 UNC。這是一種“雙跳”情況,需要配置 Kerberos 約束委派。

這已經在https://stackoverflow.com/questions/18749224/restore-database-from-a-shared-folder得到解答

引用自:https://dba.stackexchange.com/questions/145665