SQL Server批量插入访问问题

时间:2009-06-23 20:25:18

标签: sql-server

我正在尝试在SQL Server上执行批量插入:

BULK INSERT SampleData FROM '<UNC_Path>'
WITH ( FIELDTERMINATOR = '|', ROWTERMINATOR = '\n' )

这可以针对我的本地数据库运行,但是当我尝试针对我们的dev服务器运行时,我收到以下错误:

“无法批量加载,因为无法打开文件”...“。操作系统错误代码5(访问被拒绝。)

我的帐户和SQL服务帐户都可以访问该路径。我的网络管理员正在与代表合作以使其工作,但是已经没有想法了。有没有人在这里见过这个问题?

1 个答案:

答案 0 :(得分:3)

引自Remus Rusanu

  

您的客户端使用SQL进行身份验证   服务器,然后SQL Server模拟   客户端并尝试访问UNC   路径。那就是代表团而且是   含蓄地被禁止。你必须服用   启用的明确步骤   SQL的约束委派   服务器服务帐户。看到这个   文章解释细节:   http://msdn.microsoft.com/en-us/library/ms998355.aspx   文章显示受到限制   授权ASP服务   访问后端数据库,但是   在你的情况下,它将是SQL   服务器在中间访问   后端UNC分享。

作为替代方法,您可以使用Sql身份验证连接到Sql Server。这将导致Sql Server以自己的帐户访问共享。

您确定批量插入是在Sql Server帐户下执行的吗?如果是批处理作业,则可能在Sql Server Agent帐户下执行。默认情况下,这是system \ NetworkService。将其更改为有权访问共享的域用户。