SQL Server 2017 OPENROWSET с Excel 2016 - PullRequest
1 голос
/ 18 января 2020

Я полностью сбит с толку SQL Сервером и OPENROWSET разрешениями.

У нашей команды есть группа AD. Эта группа входит в локальную группу Windows Администраторы сервера DEV. Эта же группа AD имеет привилегию SysAdmin для локальной установки SQL Server 2017.

Попытка выполнить команду:

SELECT *  
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=C:\Work\test.xls;HDR=YES',['sheet1$'])

работает для меня, но ни для одного из моих товарищей по команде.

Если имеется определенный документ о требованиях безопасности для использования команды OPENROWSET - я его не нашел (и, пожалуйста, не обращайтесь ко мне на docs.microsoft.com - эта документация не написана любым способом, который я понимаю).

Есть и другие проблемы, которые я обнаружил, в том числе, если я изменю имя листа в книге Excel - команда не выполняется (и да - я закрыл книгу после внесения изменений ).

Наконец - некоторые отзывы об использовании OPENROWSET - это вообще хорошая идея? плохая идея? довольно нейтрально, но будьте готовы к такого рода проблемам?

Надеюсь, этот вопрос достаточно конкретен c, чтобы на него можно было ответить - вероятно, я потратил 20+ часов, пытаясь понять, как это работает, так Я могу заставить его работать и использовать его последовательно.

Спасибо!

1 Ответ

0 голосов
/ 18 января 2020

Так что, честно говоря, устранение неполадок с безопасностью / разрешениями и ошибками с SQL Сервер, пожалуй, самый неприятный аспект моей работы.

Первые несколько вопросов и мыслей о вашей дилемме.

  • Вы действительно хотите, чтобы ваша команда была подключена к вашим правам администратора базы данных? Я бы не стал делать этот период, остановка.
  • Будут ли обновлены данные? Если да, я предлагаю вам включить эти данные в таблицу sql с помощью процесса, возможно, пакета python, ssis, dts, powershell, независимо от того, что вам нравится.

Если данные всегда будут stati c в этом одном файле excel, я бы посоветовал, возможно, заставить его работать как связанный сервер для (надеюсь) меньшего количества проблем с разрешениями? Кроме того, легче сделать запрос из моей памяти.

В любом случае, эта статья (без ссылки msdn) может помочь? Я делал это один раз раньше, и у меня было немного меньше трудных моментов, но опять же это связано с добавлением драйвера (обычно) на сервер sql. НО, тогда мне не нужно было разрешать нескольким пользователям сисадмин - и я думаю, что НИЧЕГО лучше, чем это.

https://www.sqlshack.com/query-excel-data-using-sql-server-linked-servers/

Иногда проблема не в пользователь, выполняющий запрос, но SQL Сервер, использующий учетную запись, под которой он запускается - для получения разрешений на файл Эта статья также затрагивает этот аспект. Я не уверен, что это ваша проблема, как вы говорите , она работает для меня, но не для вас , но, возможно, прочитайте эту часть статьи хотя бы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...