Sql server 2008 如何授予运行批量插入的权限?

Sql server 2008 如何授予运行批量插入的权限?,sql-server-2008,windows-server-2008,Sql Server 2008,Windows Server 2008,我有一台SQL Server 2008在远程机器上运行。让我们说这台机器叫XYZ。以下工作: 远程桌面到XYZ 打开SSMS,然后连接到在XYZ上运行的SQL Server 运行以下命令: USE SampleDB GO CREATE TABLE [dbo].[SampleData]( [ColA] [varchar](50) NULL, [ColB] [varchar](500) NULL ) ON [PRIMARY] GO BULK INSERT [dbo].[Samp

我有一台SQL Server 2008在远程机器上运行。让我们说这台机器叫XYZ。以下工作:

  • 远程桌面到XYZ
  • 打开SSMS,然后连接到在XYZ上运行的SQL Server
  • 运行以下命令:

    USE SampleDB
    GO
    
    CREATE TABLE [dbo].[SampleData](
        [ColA] [varchar](50) NULL,
        [ColB] [varchar](500) NULL
    ) ON [PRIMARY]
    
    GO
    
    BULK INSERT [dbo].[SampleData]
    FROM "H:\Scratch\OUTPUT_Sample"
    WITH
    (
        FIELDTERMINATOR = '$',
        ROWTERMINATOR = '\n',
        FIRSTROW = 2
    )
    GO
    
  • 这个运行得很好。现在,我通过执行以下操作连接到另一个SQL Server ABC:

    USE SampleDB
    GO
    
    CREATE TABLE [dbo].[SampleData](
        [ColA] [varchar](50) NULL,
        [ColB] [varchar](500) NULL
    ) ON [PRIMARY]
    
    GO
    
    BULK INSERT [dbo].[SampleData]
    FROM "H:\Scratch\OUTPUT_Sample"
    WITH
    (
        FIELDTERMINATOR = '$',
        ROWTERMINATOR = '\n',
        FIRSTROW = 2
    )
    GO
    
  • 远程桌面到XYZ
  • 打开SSMS,然后连接到ABC上运行的SQL Server
  • 运行上面的脚本
  • 我得到以下错误:

    Msg 4861, Level 16, State 1, Line 2
    Cannot bulk load because the file "H:\Scratch\OUTPUT_Scratch" could not be opened. Operating system error code 3(The system cannot find the path specified.).
    
    有人能告诉我如何解决这个问题吗?我想我需要给某个帐户授予一些权限,但我不确定如何找到它,也不确定授予该帐户什么权限。我在使用
    sqlcmd.exe
    时也会遇到同样的错误


    有什么建议吗?

    看来我找到了答案。总之,该文件似乎应该与SQL Server位于同一台计算机上才能正常工作。要让它查找本地文件,应该通过UNC共享或类似的方式完成。

    看起来我找到了答案。总之,该文件似乎应该与SQL Server位于同一台计算机上才能正常工作。要查找本地文件,应该通过UNC共享或类似的方式进行。

    我认为该文件存在于ABC文件系统中?我对SQL Server生态系统有点陌生,因此我猜这是我的误解。所以,当我将RDP转换到XYZ中,然后对ABC执行查询时,它会在远程文件系统上查找该文件吗?有没有办法让它在本地文件系统上查找文件?是的,SQL Server在它(SQL Server)运行的机器上查找文件-无论客户端从何处连接。我认为该文件存在于ABC文件系统上?我对SQL Server生态系统有点陌生,所以我猜这是我的误解。所以,当我将RDP转换到XYZ中,然后对ABC执行查询时,它会在远程文件系统上查找该文件吗?有没有办法让它在本地文件系统上查找文件?是的,SQL Server在运行它(SQL Server)的机器上查找文件,而不管客户端从何处连接。