【发布时间】:2020-10-10 08:14:46
【问题描述】:
请为我的问题找到如下图表:
我在同一个域中有 3 台服务器,有一个 SQL Server 实例 A(它的 windows 服务在 domain\User1 下运行),在这个实例中,我们有一个存储过程用于从网络共享的 BULK INSERT 文本文件服务器 C 中的文件夹,域\User1 对此文件夹具有完全权限。
我的问题是:存储过程在其(服务器 A)中通过 SSMS 连接时运行正常(绿色箭头)。但是当我在服务器 B 中更改为 SSMS 时它失败了(通过同一个域\User1 登录到同一个实例 A)。错误是文本文件的“访问被拒绝”(红色箭头)。客户是否在其中发挥作用?我认为客户端无关紧要,文件读取是从服务器完成的(由运行实例A服务的用户)
注意:如果我将 SSMS B 中的实例 A 与 SQL 登录用户(不是 windows 帐户)连接,则存储过程可以正常工作。
谁能给我一些建议,对不起我的英语不好
【问题讨论】:
-
嗨!您需要在域下的共享文件夹中添加 user1。访问被拒绝只是为了网络安全。在此解决方案中,您只需添加用户 user1。我试过了。
-
@Amirhossein:我已经授予 domain\User1 共享文件夹的读/写权限。但它只有在我从 SSMS A 调用时才有效。我已尝试通过 domain\User1 登录服务器 B 并可以访问该共享文件夹。顺便说一句,为这个文件夹授予所有人仍然不起作用。
标签: sql-server ssms bulkinsert impersonation