При выполнении сравнения схем с правами 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.