Kil*_*awr 26 t-sql sql-server bulkinsert
出于某种奇怪的原因,我在执行批量插入时遇到问题.
BULK INSERT customer_stg
FROM 'C:\Users\Michael\workspace\pydb\data\andrew.out.txt'
WITH
(
FIRSTROW=0,
FIELDTERMINATOR='\t',
ROWTERMINATOR='\n'
)
Run Code Online (Sandbox Code Playgroud)
读完这篇文章后我有信心我正确设置了我的用户角色,因为它说明了......
bulkadmin固定服务器角色的成员可以运行BULK INSERT语句.
我已Login Properties正确设置了Windows身份验证(如下所示)..以授予服务器范围的权限bulkadmin
Windows身份验证http://iforce.co.nz/i/daaqcasj.vo1.png
命令EXEC sp_helpsrvrolemember 'bulkadmin'告诉我上面的信息是成功的,当前用户Michael-PC\Michael有bulkadmin权限.
bulkadmin http://iforce.co.nz/i/bou0uklk.wdj.png
但就我所知,即使我已经正确设置了一切,我仍然会收到错误.直接从SQL Server Management Studio执行批量插入.
消息4861,级别16,状态1,行2
无法批量装入,因为无法打开文件"C:\ Users\Michael\workspace\pydb\data\andrew.out.txt".操作系统错误代码5(访问被拒绝.).
这是没有意义的,因为显然bulkadmins可以运行声明,我是否打算重新配置如何bulkadmin工作?(我迷路了)关于如何修复它的任何想法?
ant*_*tew 21
使用SQL Server身份验证时,将显示此错误,并且不允许SQL Server访问批量装入文件夹.
因此,让SQL Server访问该文件夹将解决该问题.

方法如下:转到文件夹右键单击 - >属性 - >安全性选项卡 - >编辑 - >添加(在新窗口中) - >高级 - >立即查找.在搜索结果中的用户列表下,找到类似SQLServerMSSQLUser $ UserName $ SQLExpress的内容,然后单击"确定"以打开所有对话框.
Aar*_*and 12
我不认为重新安装SQL Server会解决这个问题,它只会耗费一些时间.
我的猜测是,它不是Michael-PC\Michael试图访问该文件,而是SQL Server服务帐户.如果是这种情况,那么您至少有三个选项(但可能还有其他选项):
一个.将SQL Server服务设置为以您的身份运行.
湾 授予SQL Server服务帐户对该文件夹的显式访问权限.
C.将文件放在SQL Server可以访问的更合理的位置,或者可以使其具有访问权限(例如C:\bulk\).
我建议假设这是一个包含的本地工作站.当我们谈论生产机器时,对SQL Server的本地文件系统访问肯定存在更严重的安全问题,当然这仍然可以通过使用c.上面的方式大大减轻- 并且只允许服务帐户访问您想要它的文件夹能够触摸.
小智 8
小智 2
我解决这个问题的方法非常简单:
你的问题已经解决了。
| 归档时间: |
|
| 查看次数: |
138780 次 |
| 最近记录: |