SQL Server с MSA не может записать в общий ресурс UNC

У меня SQL Server 2012 работает в среде домена Active Directory. В соответствии с этим документом я настроил управляемую учетную запись службы для запуска служб SQL. Поскольку мой функциональный уровень домена - 2008, это обычный MSA, а не gMSA (группа). Все идет нормально. Проблема в том, что я хочу сделать резервную копию баз данных на общий ресурс UNC. Это не было бы проблемой, если бы служба SQL работала под обычной учетной записью домена, но учетная запись управляемой службы не может выполнять запись в общий каталог. Я явно дал разрешение в настройках безопасности для этого общего ресурса, но SQL по-прежнему выдает ошибку при попытке сделать резервную копию. В частности, сообщение об ошибке гласит:

System.Data.SqlClient.SqlError: Невозможно открыть устройство резервного копирования '\remoteserver\Backupshare\SQLbkup.bak'. Ошибка операционной системы 1808(Используемая учетная запись является учетной записью компьютера. Используйте вашу глобальную учетную запись или локальную учетную запись пользователя для доступа к этому серверу.). (Microsoft.SqlServer.Smo)

[Фактический путь резервного копирования изменен в целях редактирования]

Поиски по сообщению об ошибке дали только не относящиеся к делу результаты. Некоторые дискуссии по technet показывают, что должна быть возможность дать MSA разрешение на запись в удаленный каталог. Есть идеи, что мне не хватает?

26 апреля 2018 г. Редактировать:

В своем первоначальном посте я не упомянул, что конкретный ресурс, на который я хочу написать, - это ресурс CIFS на устройстве Netapp. Я не упомянул об этом, потому что не думал, что это актуально. Однако, поскольку я продолжал исследовать это и проводить дополнительные тесты, кажется, что это действительно проблема Netapp. В качестве теста я сделал общий ресурс на обычном компьютере с Windows 7 и попытался записать туда свою резервную копию SQL. Это работало, пока я давал разрешение MSA на целевой каталог. Когда я посмотрел в журнале безопасности на компьютере с Windows 7, я увидел, что входящее соединение использует учетные данные MSA, независимо от того, использовал ли я прокси-сервер в агенте SQL или нет.

Таким образом, на стороне SQL кажется, что даже если задание запускается от имени администратора домена, фактическая операция записи для bak-файла выполняется в качестве учетной записи управляемой службы. Если целью является машина Windows в домене, она может принять это входящее соединение. Однако Netapp не может - по крайней мере, с той версией Data ONTAP, которая у нас есть. Так что, похоже, мы в тупике. Спасибо Кэтрин за ваш ответ, который помог мне многому научиться.:)

1 ответ

Задание резервного копирования выполняется от имени пользователя агента SQL. Я предполагаю, что агент SQL работает как ваш MSA?

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

Я полагаю, что проблема может быть не в назначении MSA SeAssignPrimaryTokenPrivilege, Необходимые привилегии для прокси-серверов агентов SQL:

  1. Разрешение на обход обхода проверки (SeChangeNotifyPrivilege)
  2. Разрешение на замену токена уровня процесса (SeAssignPrimaryTokenPrivilege)
  3. Разрешение на изменение квот памяти для процесса (SeIncreaseQuotaPrivilege)
  4. Разрешение на доступ к этому компьютеру из сети (SeNetworkLogonRight)

Честно говоря, я бы не ожидал, что MSA не назначит эти привилегии, чтобы задания агента переключались на учетную запись пользователя MSA, а не на учетную запись компьютера, но ваше сообщение об ошибке и моя тестовая среда указывают на обратное.

Другие вопросы по тегам