Сравнение схем с MS Data Tools в VS2008 - PullRequest
2 голосов
/ 06 мая 2010

При выполнении сравнения схем с правами db_owner для целевой базы данных возникает следующая ошибка:

У пользователя нет прав на выполнение этого действия.

Использование SQL Server Profiler Я выяснил, что эта ошибка возникает при выполнении запроса, ориентированного на представление главной базы данных: [sys]. [Dm_database_encryption_keys]

Несмотря на то, что специально игнорируются все типы объектов, кроме Таблицы , можно предположить, что SQL Compare не нужен доступ к ключам шифрования БД. Также обратите внимание:

http://social.msdn.microsoft.com/Forums/en-US/vstsdb/thread/c11a5f8a-b9cc-454f-ba77-e1c69141d64b/

Одним из решений было бы предоставление GRANT VIEW SERVER STATE пользователю db, но в моем случае я не размещаю службы базы данных и не получаю права на состояние сервера.

Также попытался исключить элемент DatabaseEncryptionKey в файле сравнения.

 <PropertyElementName>
    <Name>Microsoft.Data.Schema.Sql.SchemaModel.SqlServer.ISql100DatabaseEncryptionKey</Name>
    <Value>ExcludedType</Value>
 </PropertyElementName>

У кого-нибудь есть обходной путь?

Мы используем инструмент сравнения данных MS для публикации из проекта базы данных в среду DTAP.

Ответы [ 3 ]

1 голос
/ 02 августа 2010

Единственный успешный обходной путь, который я нашел, - это развернуть схему в локальной базе данных разработки, а затем выполнить сравнение схемы с использованием этой локальной базы данных в качестве источника вместо проекта базы данных.

В этой ситуации по-прежнему возникает ошибка, но кнопка Write Updates больше не отключается, и схема обновляется, как и ожидалось.

0 голосов
/ 25 мая 2010

Должно ли оно использовать инструменты MS Data в VS 2008? Я думаю, что вы должны попробовать внешние инструменты, как это:

SQLDBDiff

Это очень приятные инструменты для сравнения схемы вашей БД. также вы можете сгенерировать скрипт для синхронизации схемы.

0 голосов
/ 24 мая 2010

Почему вы не можете попробовать другие (внешние) инструменты сравнения схем?Посмотрите на Сравнение SQL в красных воротах.

...