Создание общей папки между двумя серверами
Мне нужно создать доставку журналов SQL между 2 базами данных,
Источник находится в экземпляре AWS EC2 под управлением Windows Server 2008 R2 и SQL Server 2008
Место назначения находится на виртуальной машине Azure под управлением Windows datacenter 2012 и SQL Server 2012
Этот процесс требует следующего:
А. Исходный сервер записывает файл
B. целевой сервер скопировать файл в локальную папку на нем
C. целевой сервер использует файл
все эти задачи выполняются процессом sql server
Теперь у меня есть проблема создания какой-либо общей папки между экземплярами, я попытался сделать следующее:
шаг А выполняется в локальной папке на машине,
На шаге b сервер sql пытается получить доступ к этой папке, используя этот формат (и копирует файлы из нее в локальную папку):
\\serveraddress\drive$\folder
после предоставления всем доступа к этой папке на исходном сервере и включения общего доступа и включения гостевого пользователя
Тем не менее у меня продолжают возникать проблемы с доступом, и процесс копирования не удается.
Что делать?
Спасибо
РЕДАКТИРОВАТЬ:
Я потерпел неудачу, пытаясь использовать любое из предложенных решений, например, что сервер SQL не мог получить доступ к папкам, к которым у него был доступ,
Поэтому вместо того, чтобы углубиться в это, я решил использовать стороннее программное обеспечение для синхронизации информации между двумя серверами, например dropbox/svn и т. Д., И используя одно и то же местоположение для общей папки на обоих серверах, я мог бы очень простым способом используйте сетевое местоположение:
\\localhost\...
и оба компьютера будут работать так, как если бы он находился в сети, но папка была синхронизирована и открыта для общего доступа на локальном экземпляре, поэтому проблем с правами на нее не было
Не идеальное решение, но оно работает.
2 ответа
Все пользователи и серверы находятся в одном домене Active Directory или в доменах, которым доверяет исходный сервер? Если нет, пользователи пытаются анонимно войти в сеть. В версиях Windows, начиная с 2003/XP, группа Все не дает разрешения для этого. Вам необходимо предоставить разрешения группам ANONYMOUS LOGON и NETWORK.
Первый шаг. Не используйте общие ресурсы
Затем на целевом сервере:
Создайте свою собственную долю, например:
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>
Это должно работать. Сделайте то же самое в противоположном направлении для соединений другим способом.