2

ターゲット データベースで 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 環境に公開しています。

4

3 に答える 3

1

私が見つけた唯一の成功した回避策は、スキーマをローカル開発データベースにデプロイし、データベース プロジェクトではなくそのローカル データベースをソースとして使用してスキーマ比較を行うことです。

この状況でもエラーは発生しますが、Write Updatesボタンは無効ではなくなり、スキーマは期待どおりに更新されます。

于 2010-08-02T05:51:25.953 に答える
0

他の (外部) スキーマ比較ツールを試せないのはなぜですか? Red gate の SQL Compare を調べてください。

于 2010-05-24T13:09:20.963 に答える
0

VS 2008 で MS Data ツールを使用している必要がありますか? 次のような外部ツールを試す必要があると思います。

SQLDBDiff

これは、DB のスキーマを比較するための非常に優れたツールです。また、スキーマを同期するスクリプトを生成することもできます。

于 2010-05-25T08:36:07.613 に答える