スキーマVS2008のMSデータツールと比較してください
-
03-10-2019 - |
質問
スキーマを実行する場合、ターゲットデータベースにdb_ownerの権利を持つことを比較すると、次のエラーが発生します。
ユーザーは、このアクションを実行する許可を持っていません。
SQL Server Profilerを使用して、このエラーが発生し、マスターDBビューをターゲットとするクエリの実行が発生します。[sys]。[dm_database_encryption_keys
すべてのオブジェクトタイプを具体的に無視しますが テーブル SQL CompareはDB暗号化キーへのアクセスを必要としないと推測されます。また、注:
http://social.msdn.microsoft.com/forums/en-us/vstsdb/thread/c11a5f8a-b9cc-454f-ba77-e1c69141d64b/
ソリューションの1つは、View Server StateをDBユーザーに付与することですが、私の場合はデータベースサービスをホストしておらず、サーバー状態の権利を取得しません。
また、CompareファイルのDatabaseCryptionKey要素を除外してみました。
<PropertyElementName>
<Name>Microsoft.Data.Schema.Sql.SchemaModel.SqlServer.ISql100DatabaseEncryptionKey</Name>
<Value>ExcludedType</Value>
</PropertyElementName>
誰かがこれを回避策を持っていますか?
MS Data Toolsを使用して、データベースプロジェクトからDTAP環境への公開と比較しています。
解決
私が見つけた唯一の成功した回避策は、スキーマをローカル開発データベースに展開し、データベースプロジェクトの代わりにそのローカルデータベースをソースとして使用してスキーマを比較することです。
この状況ではまだエラーが発生しますが、 Write Updates
ボタンは無効になっていないため、スキーマは予想どおりに更新されます。
他のヒント
なぜ他の(外部)スキーマ比較ツールを試すことができないのですか? Red GateのSQL Compareをご覧ください。
2008年VSでMSデータツールを使用している必要がありますか?このような外部ツールを試すべきだと思います:
DBのスキーマを比較するためのこの非常に素晴らしいツール。また、スクリプトを生成してスキーマを同期することもできます。