Вопрос

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

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

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

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

http://social.msdn.microsoft.com/forums/en-us/vstsdb/thrad/c11a5f8a-b9cc-454f-ba77-e1c69141d64b/

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

Также попробовал исключить элемент базы данных данных в файле Commar.

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

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

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

Это было полезно?

Решение

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

Ошибка все еще подходит в этой ситуации, но Write Updates Кнопка больше не отключена и обновления схемы, как и ожидалось.

Другие советы

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

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

Sqldbdiff.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top