Мне нужно создать доставку журнала SQL между двумя базами данных,
Источник находится на экземпляре AWS EC2 под управлением Windows Server 2008 R2 и SQL Server 2008.
Пункт назначения находится на виртуальной машине Azure под управлением центра обработки данных Windows 2012 и SQL Server 2012.
Для этого процесса требуется следующее:
A. исходный сервер записывает файл
Б. целевой сервер скопируйте файл в локальную папку на нем
C. целевой сервер использует файл
все эти задачи выполняются процессом sql server
Теперь у меня проблема с созданием некоторой общей папки между экземплярами, я попытался сделать следующее:
шаг A выполняется в локальной папке на машине,
На шаге b сервер sql пытается получить доступ к этой папке, используя этот формат (и копирует файлы из нее в локальную папку):
\\serveraddress\drive$\folder
после предоставления всем доступа к этой папке на исходном сервере и включения совместного использования и включения гостевого пользователя
Однако у меня все еще возникают проблемы с доступом, и процесс копирования не выполняется.
Что делать?
Спасибо
РЕДАКТИРОВАТЬ :
В итоге я не добился успеха, попробовав какое-либо из предложенных решений, например, как сервер sql не мог получить доступ к папкам, к которым у пользователя был доступ,
Поэтому вместо того, чтобы копаться в этом, я решил использовать стороннее программное обеспечение для синхронизации информации между двумя серверами, такими как dropbox / svn и т. Д., И, используя одно и то же место для общей папки на обоих серверах, я мог бы очень простым способом использовать сетевое расположение:
\\localhost\...
и оба компьютера будут действовать так, как если бы они были в сети, но папка была синхронизирована и предоставлена к совместному использованию на локальном экземпляре, поэтому на ней не было проблем с разрешением.
Не идеальное решение, но оно работает.
Шаг первый. Не используйте общие ресурсы <drive> $ - это административные ресурсы, для которых необходимы права администратора.
Затем на целевом сервере:
Создайте свою собственную долю, например:
net share LOG_SHIPPING=d:\data\log_shipping /grant:everyone,full /cache:none /remark:"something meaningful"
Создайте локальную учетную запись на целевом сервере:
net user log_shipping_user <PASSWORD> /comment:"something meaningful" /passwordchq:no /add
Установите разрешения соответствующим образом, например:
icacls d:\data\log_shipping /grant "log_shipping_user:(OI)(CI)(M)"
Затем на исходном сервере установите входящее соединение с использованием указанного выше пользователя:
net use \\<TARGET SERVER>\log_shipping /user:<TARGET_SERVER>\log_shipping_user /password:<PASSWORD>
Это должно сработать. Проделайте то же самое в обратном направлении для соединений другим способом.
Все пользователи и серверы находятся в одном домене Active Directory или в доменах, которым доверяет исходный сервер? В противном случае пользователи пытаются войти в систему анонимно через сеть. В версиях Windows, начиная с 2003 / XP, группа «Все» не дает на это разрешений. Вам необходимо предоставить разрешения группам АНОНИМНЫЙ ВХОД и СЕТЬ.