使用SQL身份验证时收到SSIS批量插入错误,而使用Windows身份验证时可以插入数据。
[大容量插入任务]错误:发生以下错误消息,错误:“由于无法打开文件“ C:\ BCP \ extract_remove_ref.bcp”,所以无法大容量加载。操作系统错误代码3(无法检索)该错误的文字。原因:15105)。”。
答案 0 :(得分:4)
使用SQL Server身份验证进行BULK INSERT
时,将按照documentation中指定的方式使用SQL Server服务使用的帐户的凭据。若要解决此问题,请将对BULK INSERT
操作中正在使用的文件夹/文件的访问权限授予SQL Server服务运行所在的帐户。可以通过Windows右键单击文件夹/文件并转到属性> 安全性> 编辑> 添加< / strong>,然后输入帐户名称。如果找不到它,请确保在对象类型窗口中选择了正确的帐户类型,然后从位置窗口中选择合适的位置。如果您找不到帐户,请输入检查名称选项。
请参阅以下官方文档:
向每服务SID授予文件系统权限
- 使用Windows资源管理器,导航到存储数据库文件的文件系统位置。右键单击文件系统文件夹,然后单击“属性”。
- 在“安全性”选项卡上,单击“编辑”,然后单击“添加”。
- 在“选择用户,计算机,服务帐户或组”对话框中,单击“位置”,在位置列表的顶部,选择您的计算机名称,然后单击“确定”。
- 在“输入要选择的对象名称”框中,键入“联机丛书”主题“配置Windows服务帐户和权限”中列出的每个服务SID名称的名称。 (对于每个服务SID名称的数据库引擎,对于默认实例,请使用NT SERVICE \ MSSQLSERVER;对于命名实例,请使用NT SERVICE \ MSSQL $ InstanceName。)
- 单击“检查名称”以验证输入。 (如果验证失败,则可能会建议您找不到该名称。单击“确定”时,将出现“找到多个名称”对话框。现在,选择每个服务的SID名称,即MSSQLSERVER或NT SERVICE \ MSSQL $ InstanceName,然后然后单击“确定”。再次单击“确定”以返回到“权限”对话框。
- 在“组或用户名”框中,选择每个服务的SID名称,然后在“权限”框中,选中“完全控制”的“允许”复选框。
- 单击“应用”,然后单击两次“确定”退出。
其他信息