使用SQL身份验证时SSIS批量插入错误

时间:2019-03-18 14:10:39

标签: sql-server ssis bulkinsert ssis-2012

使用SQL身份验证时收到SSIS批量插入错误,而使用Windows身份验证时可以插入数据。

  

[大容量插入任务]错误:发生以下错误消息,错误:“由于无法打开文件“ C:\ BCP \ extract_remove_ref.bcp”,所以无法大容量加载。操作系统错误代码3(无法检索)该错误的文字。原因:15105)。”。

1 个答案:

答案 0 :(得分:4)

使用SQL Server身份验证进行BULK INSERT时,将按照documentation中指定的方式使用SQL Server服务使用的帐户的凭据。若要解决此问题,请将对BULK INSERT操作中正在使用的文件夹/文件的访问权限授予SQL Server服务运行所在的帐户。可以通过Windows右键单击文件夹/文件并转到属性> 安全性> 编辑> 添加< / strong>,然后输入帐户名称。如果找不到它,请确保在对象类型窗口中选择了正确的帐户类型,然后从位置窗口中选择合适的位置。如果您找不到帐户,请输入检查名称选项。


更新1-官方文档

请参阅以下官方文档:

向每服务SID授予文件系统权限

  
      
  1. 使用Windows资源管理器,导航到存储数据库文件的文件系统位置。右键单击文件系统文件夹,然后单击“属性”。
  2.   
  3. 在“安全性”选项卡上,单击“编辑”,然后单击“添加”。
  4.   
  5. 在“选择用户,计算机,服务帐户或组”对话框中,单击“位置”,在位置列表的顶部,选择您的计算机名称,然后单击“确定”。
  6.   
  7. 在“输入要选择的对象名称”框中,键入“联机丛书”主题“配置Windows服务帐户和权限”中列出的每个服务SID名称的名称。 (对于每个服务SID名称的数据库引擎,对于默认实例,请使用NT SERVICE \ MSSQLSERVER;对于命名实例,请使用NT SERVICE \ MSSQL $ InstanceName。)
  8.   
  9. 单击“检查名称”以验证输入。 (如果验证失败,则可能会建议您找不到该名称。单击“确定”时,将出现“找到多个名称”对话框。现在,选择每个服务的SID名称,即MSSQLSERVER或NT SERVICE \ MSSQL $ InstanceName,然后然后单击“确定”。再次单击“确定”以返回到“权限”对话框。
  10.   
  11. 在“组或用户名”框中,选择每个服务的SID名称,然后在“权限”框中,选中“完全控制”的“允许”复选框。
  12.   
  13. 单击“应用”,然后单击两次“确定”退出。
  14.   

其他信息