2011-06-23 82 views
0

我有以下問題:SQL Server功能網絡訪問權限問題

我寫了C#彙編SqlServer函數,必須刪除,複製或移動內部網絡計算機上的文件。

的代碼如下:網絡服務下贏得2008服務器上

public Class FunzioniIO 
{ 
    [SqlFunction()] 
    public static SqlString DeleteFile (SqlString PathFile) 
    { 
     try 
     { 
      File.Delete(PathFile.Value); 
      return new SqlString("True"); 
     } 
     catch (Exception ex) 
     { 
      return new SqlString(ex.Message + " \n" + ex.StackTrace); 
     } 
    } 
} 

Sql Server中運行。

當我特林訪問的另一個網絡大型機給予他像

'\\\192.168.0.xx\SharedFolder\file.txt' 

它返回以下錯誤的共享路徑一個文件:

Access to the path '\\192.168.0.xx\SharedFolder\file.txt' is denied.

這我想是因爲它嘗試像NetworkService一樣訪問權限,並且拒絕來自FileHosting計算機。

我試圖給予遠程計算機上的共享權利,比如NetworkService沒有成功,最後給每個人,但是siuation是相同的。

問題是我必須做什麼使sql server能夠遠程訪問文件?

+0

請不要冷笑!!! –

+1

你是如何在SQL中定義你的程序集的?您是否使用過'EXTERNAL_ACCESS',如果是,服務帳戶是否有權限使用'EXTERNAL_ACCESS'運行? –

+0

是權限與外部訪問 – Piercarlo

回答

1

本地網絡服務實際上是DOMAIN\MACHINENAME$共享。因此,在該份額的底層NTFS/Samba上共享上的此帳戶的權限

+1

當然最好爲服務創建一個新的域帳戶,而不是提升NetworkService下運行的*任何*權限 –

+0

@Alex K .:當然好點 – gbn

+0

對不起但是我不太明白這意味着我Mus創建新的用戶喜歡ComputerName其中ComputerName我的MACHINENAME的SQL Server? – Piercarlo