我有以下问题:
我为SqlServer函数编写了c#程序集,该程序集必须删除、复制或移动内部网络计算机上的文件。
遵循代码:
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在win 2008服务器上的NetworkService下运行。
当我试图访问另一个网络计算机的一个文件时,给了他像一样的共享路径
'\192.168.0.xxSharedFolderfile.txt'
它返回以下错误:
访问路径'\\192.168.0.xx\SharedFolder\file.txt'被拒绝。
我认为这是因为它试图访问类似NetworkService的权限被FileHosting计算机拒绝。
起初,我试图在远程计算机上授予共享权限,比如NetworkService,但没有成功,最后还是授予Everyone,但效果是一样的。
问题是我必须做什么才能启用sql server远程文件访问?
本地NetworkService实际上是共享的DOMAINMACHINENAME$
。因此,允许该帐户在共享和底层NTFS/Samba上访问该共享