ターゲット データベースで 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/
解決策の 1 つは GRANT VIEW SERVER STATE を db ユーザーに付与することですが、私の場合はデータベース サービスをホストしておらず、サーバー状態に対する権限を取得しません。
また、比較ファイルで DatabaseEncryptionKey 要素を除外しようとしました。
<PropertyElementName>
<Name>Microsoft.Data.Schema.Sql.SchemaModel.SqlServer.ISql100DatabaseEncryptionKey</Name>
<Value>ExcludedType</Value>
</PropertyElementName>
誰でもこれを回避できますか?
MS Data Tools 比較を使用して、データベース プロジェクトから DTAP 環境に公開しています。