предоставил доступ на чтение файла каждому, но SQL Сервер не может массово вставить - PullRequest
0 голосов
/ 27 марта 2020

Использование Windows 10, SQL Server 2016. Мой компьютер называется FR-PC4335. Предоставлен доступ к файлу

\\ FR-PC4335 \ Users \ aubertl \ Documents \ csv \ Exemple fichier cout de production.csv

для всех. Вы вошли на сервер с помощью удаленного рабочего стола и смогли получить доступ к этому пути UN C с помощью проводника. Тем не менее, при попытке BULK INSERT SQL Сервер возвращает

Msg 4861 Уровень 16: доступ запрещен.

Нужно ли предоставить конкретный c доступ к SQL Серверу при top of all?

Использование Windows Аутентификация для SQL подключения к серверу.

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 Массовая загрузка невозможна из-за файла "\ \ FR-PC4335 \ Users \ aubertl \ Documents \ csv \ Exemple fichier cout de production.csv "открыть нельзя. Код ошибки 5 (доступ запрещен.).

Похоже, у меня есть разрешение bulkadmin:

SELECT IS_SRVROLEMEMBER('bulkadmin') AS bulkadmin;

enter image description here

НАЛИЧНАЯ ВСТАВКА Запрос выполняется успешно, если запущен непосредственно на сервере, но не выполняется, если выполняется из клиентской SSMS. Интересно почему.

Ответы [ 2 ]

0 голосов
/ 30 марта 2020

Загружен файл на сервер. Побежал:

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 на сервере. Как ни странно, использование UN C по тому же пути не удается.

0 голосов
/ 27 марта 2020

Вы указываете путь относительно вашего P C и для конкретного пользователя c, но он не подходит для сервера по соображениям конфиденциальности, несмотря на предоставленные вами права на файлы. У вас должна быть не только общая папка, но и stict-путь, которого нет в USER. ....

Попытайтесь поместить свой файл в прямую папку на реальном диске (например, C).

Если вы француз, вы также можете задать эти вопросы в Developpez. .com французские форумы на французском ....

...