2010-03-25 183 views
1

當試圖從我的代碼運行以下數據庫備份命令時,出現「操作系統錯誤5(訪問被拒絕。)」錯誤。這是因爲SQL Server Windows服務的登錄帳戶是「網絡服務」,並且無權訪問此文件夾。SQL Server數據庫備份:網絡服務文件訪問

BACKUP DATABASE [AE3DB] TO DISK = 'c:\AE3\backup\AE3DB.bak' 

我的問題是,從我的代碼,我將如何去搞清楚所在的C盤上的「網絡服務」,允許右備份?

注意:這是一個分佈式應用程序,因此我無法輕鬆地將SQL Server Windows服務的登錄更改爲可以直接訪問該文件夾的「本地系統」帳戶。

+0

您是否有能力指定該文件夾的安全性,以便NETWORK SERVICE可以寫入該文件夾?根據c:\ AE3 \ backup上的Windows共享和安全屬性進行思考。 –

回答

2

你不要去基於C搜索隨機的地方:\在SQL Server服務帳戶具有寫訪問...

您可以選擇之間:在備份

  • 地方SQL Server備份位置。這是在安裝過程中指定的,並且已正確ACL,以便服務帳戶具有所有必需的權限。請參見「備份目錄」中http://msdn.microsoft.com/en-us/library/cc281941.aspx
  • 地方備份在衆所周知位置是創建和 ACLit爲SQL Server服務帳戶適當的權限。您不應該授予服務帳戶本身的權限(此CASE中的NETWORK SERVICE),而是授予SQL Server管理服務組:SQLServerMSSQLUser$ComputerName$MSSQLSERVER。請參閱http://msdn.microsoft.com/en-us/library/ms143504.aspx
0

網絡服務帳戶的整點是對本地磁盤沒有權限。這防止了基於網絡的安全漏洞。

我的猜測是您的服務器被鎖定,這意味着您必須在本地登錄才能執行備份或使用管理帳戶遠程執行此操作。

相關問題