【问题标题】:Enable correct permissions to allow a SQL Server database account to bulk insert through a stored procedure启用正确的权限以允许 SQL Server 数据库帐户通过存储过程批量插入
【发布时间】:2013-01-24 15:58:19
【问题描述】:

我有一个存储过程,我试图从 SQL 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'
)

当我从管理工作室运行它时,它会成功执行。当我从我的 vb.net 程序调用存储过程时,我得到了错误

无法批量加载,因为无法打开文件“xxx”。操作系统错误代码 5(访问被拒绝。)

我登录用来调用存储过程的 SQL 帐户具有更改、执行、插入和管理批量操作的权限。它还对 bulkadmin、diskadmin、public 具有服务器范围的安全权限。

还有其他需要的选项吗?

【问题讨论】:

    标签: sql vb.net sql-server-2012 bulkinsert


    【解决方案1】:

    “访问被拒绝”错误表明问题在于访问您尝试批量插入的 CSV 文件。确保执行命令行(和存储过程)的任何帐户也具有读取 CSV 文件的权限。

    更新:我看到您正在使用 SQL 登录来运行该过程。请参阅this MSDN article 上标题为“安全注意事项”的部分。也就是说:

    如果用户使用 SQL Server 登录,则 SQL 的安全配置文件 使用服务器进程帐户。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-10
      • 1970-01-01
      • 1970-01-01
      • 2018-09-28
      • 1970-01-01
      • 1970-01-01
      • 2016-11-09
      • 2011-09-22
      相关资源
      最近更新 更多