У меня есть два сервера Windows Server 2012 R2 в рабочей группе, на первом у меня есть MS SQL Server, другой используется (в том числе) как хранилище для резервных копий. На сервере базы данных как SQL Server Database Engine, так и Агент SQL Server работают с виртуальными учетными записями по умолчанию - NT Service \ MSSQLSERVER и NT Service \ SQLSERVERAGENT.Как создать учетную запись службы Windows для MS SQL Server в среде рабочей группы?
Теперь я хочу использовать рабочие задания Ola Hallengren для резервного копирования баз данных MS SQL Server. Эти сценарии завернуты в задание агента SQL Server, но резервная копия - это процедура t-sql, выполняемая таким образом SQL Server Database Engine с помощью службы NT \ MSSQLSERVER.
Я создал учетную запись на сервере хранения и общую папку с правами доступа для этой учетной записи. Я могу подключить общий ресурс на сервере базы данных с помощью команды net use, предоставляющей учетные данные для созданной учетной записи. Уловка: общий ресурс подключен для учетной записи, которая запускает команду использования сети.
Если я подключу общий ресурс с помощью учетной записи локальной системы (которая должна быть для всех пользователей), то NT Service \ MSSQLSERVER не сможет получить к ней доступ, ни одна другая учетная запись не сможет. Похоже, что hack previously proposed on stackoverflow исправлен в Windows Server 2012 R2.
И если я запустил команду использования сети в качестве шага в задаче агента SQL Server, то это делается с другой виртуальной учетной записью - службой NT \ SQLSERVERAGENT - и шаг резервного копирования завершился с ошибкой «папка не найдена».
Поэтому я хотел бы знать способ создания учетной записи службы Windows с помощью all the necessary permissions для службы SQL Server Database Engine, которая будет использоваться в среде рабочей группы. Или объяснение, почему это невозможно. В идеале это должен быть сценарий - Powershell или VBScript.
Я попытался запустить как SQL Server Dabase Engine, так и агент SQL Server как локальную систему, и резервная копия работала как очарование. Но я бы не рассматривал это как решение, потому что это не рекомендуется с точки зрения безопасности.
Также я не стал бы рассматривать решение для запуска команды сетевого использования с xp_cmdshell по тем же причинам безопасности.
Как вы доступ к общему ресурсу, что это путь, который вы используете? Вы сопоставили диск или используете UNC-пути? – DavidG
@DavidG, я использую UNC-путь, например: 'net use \\ remotehost \ folder password/user: remotehost \ username' – prot
Проблема в том, что это допустимо только для текущего пользователя, вам нужно это сделать вошел в систему как тот же пользователь, с которым работает SQL. – DavidG