Создание общей папки между двумя серверами

Мне нужно создать доставку журналов 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>

Это должно работать. Сделайте то же самое в противоположном направлении для соединений другим способом.

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