授予所有人对文件的读取权限,但 SQL 服务器无法批量插入
granted read access to file to everyone, yet SQL Server cannot bulk insert
使用 Windows 10,SQL 服务器 2016。
我的机器名称是 FR-PC4335。
已授予对文件
的访问权限
\\FR-PC4335\Users\aubertl\Documents\csv\Exemple fichier cout de production.csv
到"everyone"。
使用远程桌面登录到服务器并能够使用文件资源管理器访问该 UNC 路径。
然而,在 BULK INSERT 尝试中,SQL 服务器 returns
消息 4861 级别 16: 访问被拒绝。
我是否需要在所有人之上授予对 SQL 服务器的特定访问权限?
对 SQL 服务器连接使用 Windows 身份验证。
BULK INSERT #temptable
FROM '\FR-PC4335\Users\aubertl\Documents\csv\Exemple fichier cout de production.csv'
WITH
(firstrow=2,fieldterminator=',',rowterminator='\n');
消息 4861,级别 16,状态 1,第 22 行
批量加载 impossible 因为无法打开文件“\\FR-PC4335\Users\aubertl\Documents\csv\Exemple fichier cout de production.csv”。 os 错误代码 5(访问被拒绝。)。
看起来我有 bulkadmin 权限:
SELECT IS_SRVROLEMEMBER('bulkadmin') AS bulkadmin;
如果直接在服务器上启动,BULK INSERT 查询 运行 成功,但如果 运行 来自客户端 SSMS,则失败。我想知道为什么。
您提供了一个相对于您的 PC 和特定用户的路径,但尽管您提供了文件权限,但出于隐私原因不适合服务器。您不仅需要一个共享文件夹,还需要一个不在用户文件夹中的静态路径。 ....
尝试把你的文件放到真实磁盘(比如C盘)的直接文件夹中。
如果您是法国人,您也可以在 developpez.com 法语论坛中用法语提问....
已将文件上传到服务器。 运行:
BULK INSERT #temptable
--FROM '\FR-COUVSQL200\csv\Exemple_fichier_cout_de_production.csv'
FROM 'C:\csv\Exemple_fichier_cout_de_production.csv'
WITH
(firstrow=2,fieldterminator=';',rowterminator='\n')
;
来自客户端的 SSMS。它奏效了。该文件之前已上传到服务器上的 C:\csv
。奇怪的是,对同一路径使用 UNC 失败。
使用 Windows 10,SQL 服务器 2016。 我的机器名称是 FR-PC4335。 已授予对文件
的访问权限\\FR-PC4335\Users\aubertl\Documents\csv\Exemple fichier cout de production.csv
到"everyone"。 使用远程桌面登录到服务器并能够使用文件资源管理器访问该 UNC 路径。 然而,在 BULK INSERT 尝试中,SQL 服务器 returns
消息 4861 级别 16: 访问被拒绝。
我是否需要在所有人之上授予对 SQL 服务器的特定访问权限?
对 SQL 服务器连接使用 Windows 身份验证。
BULK INSERT #temptable
FROM '\FR-PC4335\Users\aubertl\Documents\csv\Exemple fichier cout de production.csv'
WITH
(firstrow=2,fieldterminator=',',rowterminator='\n');
消息 4861,级别 16,状态 1,第 22 行 批量加载 impossible 因为无法打开文件“\\FR-PC4335\Users\aubertl\Documents\csv\Exemple fichier cout de production.csv”。 os 错误代码 5(访问被拒绝。)。
看起来我有 bulkadmin 权限:
SELECT IS_SRVROLEMEMBER('bulkadmin') AS bulkadmin;
如果直接在服务器上启动,BULK INSERT 查询 运行 成功,但如果 运行 来自客户端 SSMS,则失败。我想知道为什么。
您提供了一个相对于您的 PC 和特定用户的路径,但尽管您提供了文件权限,但出于隐私原因不适合服务器。您不仅需要一个共享文件夹,还需要一个不在用户文件夹中的静态路径。 ....
尝试把你的文件放到真实磁盘(比如C盘)的直接文件夹中。
如果您是法国人,您也可以在 developpez.com 法语论坛中用法语提问....
已将文件上传到服务器。 运行:
BULK INSERT #temptable
--FROM '\FR-COUVSQL200\csv\Exemple_fichier_cout_de_production.csv'
FROM 'C:\csv\Exemple_fichier_cout_de_production.csv'
WITH
(firstrow=2,fieldterminator=';',rowterminator='\n')
;
来自客户端的 SSMS。它奏效了。该文件之前已上传到服务器上的 C:\csv
。奇怪的是,对同一路径使用 UNC 失败。