我正在尝试在SQL Server上执行批量插入:
BULK INSERT SampleData FROM '<UNC_Path>'
WITH ( FIELDTERMINATOR = '|', ROWTERMINATOR = '\n' )
这可以针对我的本地数据库运行,但是当我尝试针对我们的dev服务器运行时,我收到以下错误:
“无法批量加载,因为无法打开文件”...“。操作系统错误代码5(访问被拒绝。)
我的帐户和SQL服务帐户都可以访问该路径。我的网络管理员正在与代表合作以使其工作,但是已经没有想法了。有没有人在这里见过这个问题?
答案 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。将其更改为有权访问共享的域用户。