我们有一个简单的 SSIS 包,可以将平面文件导入表中。唯一的问题是平面文件驻留在网络共享上,现在我唯一遇到的问题是当我尝试从本地计算机上的 SSMS 执行它时。
- 所以我的机器是 ws1 运行 Sql Server management studio (SSMS)
- 实例在 srv1 上运行
- 平面文件驻留在 srv2 上的网络共享 share1
- 所以连接字符串是\srv2\share1\folder\file.txt
- 我得到的错误是:
cannot open the datafile "\\srv2\share1\folder\file.txt"
当我在 srv1 上使用 SSMS 运行它时,它就像一个魅力!我只在ws1上得到这个错误......
这里有一些更多信息:
- share1 对每个人都具有完全权限。
- SSIS 服务帐户在域帐户下运行。
- 我正在尝试从 SSISDB 而不是从 MSDB 执行包。
2013 年 4 月 4 日添加
我在上面运行了进程监视器(procmon),结果如下:
- 当它在 srv1 上执行时,它以一个
QueryOpen
操作开始,createFile、ReadFile 等等等等一切都导致SUCCESS
...... - 当它在 ws1 上执行时,它以 FileSystemControl 操作开始,路径是
\\srv2\IPC$
,结果是NO SUCH DEVICE
,细节是,Control: FSCTL_DFS_GET_REFERRALS
然后它有另一个FileSystemContro
成功的操作,细节是Control: FSCTL_NETWORK_DELETE_CONNECTION
,然后它有很多尝试访问文件\\srv2\share1\folder\file.txt
但ACCESS DENIED
对于所有.. . - 果然,当我查看属性时,用户是有权访问共享的域用户,因为它已共享给所有人......
谁能定义这个奥秘?