Как сохранить настройки безопасности при восстановлении базы данных с другого сервера - PullRequest
0 голосов
/ 20 марта 2012

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

Другой подвох заключается в том, что я хочу делать все это из PowerShell, поэтому никаких операций с графическим интерфейсом.

Или это может быть неправильное решение проблемы.Может ли быть другой способ перемещения данных без резервного копирования / восстановления и сохранения настроек безопасности?

Ответы [ 2 ]

0 голосов
/ 21 марта 2012

Здесь есть статья , объясняющая, как создавать сценарии разрешений SQL Server через SMO через PowerShell.Тогда ваш сценарий будет состоять в том, чтобы создать сценарий для доступа к исходной БД перед восстановлением резервной копии, а затем выполнить созданный сценарий после восстановления резервной копии.

0 голосов
/ 21 марта 2012

В моей среде мы используем сценарии Powershell с Red Gate Compare Professional, чтобы восстановить базы данных и сохранить безопасность, а также различия между объектами базы данных.Процесс довольно прост

  1. Создайте снимок Red Gate для целевой базы данных.Использование инструмента командной строки Red Gate.Генерируемый файл очень мал и содержит только пользователей, разрешения и объекты - в основном все, кроме данных.
  2. Восстановление исходной базы данных по целевой базе данных с использованием T-SQL
  3. Использованиеинструменты Red Gate для командной строки, позволяющие сравнивать и синхронизировать снимок, созданный на шаге, с почти восстановленной базой данных.Любые изменения в системе безопасности или объектах восстанавливаются.

Для этого решения необходимо приобрести Профессиональную версию SQL Compare и установить инструмент на сервере разработки, с которого можно выполнить сценарий.Все это можно легко вставить в задание агента SQL.Использование Powershell действительно является базовым, поскольку мы просто запускаем sqlcompare.exe

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...