我有一个存储过程,我试图从运行在Server 2012上的命令行vb.net程序调用该过程:
CREATE TABLE #ftpData(ftp_Email varchar(150) COLLATE DATABASE_DEFAULT, ftp_Segment varchar(1) COLLATE DATABASE_DEFAULT)
BULK INSERT #ftpData FROM 'C:\Users\Administrator\Documents\tempSegFiles\segmentation_.csv'
WITH(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
当我从management运行这个程序时,它成功地执行了。当我从我的vb.net程序调用存储过程时,我会得到错误
无法大容量加载,因为文件"xxx“无法打开。操作系统错误代码5(访问被拒绝)
我登录以调用存储过程的SQL帐户具有更改、执行、插入和管理大容量操作的权限。它还具有大容量管理、磁盘管理和公共的服务器范围安全特权。
还有其他需要的选择吗?
发布于 2013-01-24 16:08:15
“访问被拒绝”错误表示问题在于访问您试图大容量插入的CSV文件。确保无论哪个帐户正在执行命令行(以及存储过程)也具有读取CSV文件的权限。
更新:我看到您正在使用SQL登录来运行这个过程。请参阅这篇MSDN文章中题为“安全考虑”的部分。即:
如果用户使用Server登录名,则使用Server进程帐户的安全配置文件。
https://stackoverflow.com/questions/14505483
复制相似问题