現象
たとえば次のようなシナリオを考えてみます。
- SQL Server 2017 インスタンスで Common Criteria Compliance (CCC) オプションを有効にします。
- 存在しない SQL ログインを使用して SQL Server インスタンスにログインしようとします。
- 管理者アカウントで SQL Server インスタンスにログインします。
- マスター データベースに対して DBCC CHECKDB コマンドを実行します。
このシナリオでは、次のようなエラーメッセージが表示されることがあります。
メッセージ 2570、レベル 16、状態 2、行 LineNumber
ページ (#:#)、オブジェクト ID #、インデックス ID #、パーティション ID #、割り当て単位 ID # (種類: "行内データ")。 列 "name" の値がデータ型 "nvarchar" の範囲外です。 列を有効な値に更新します。
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。
解決策
この問題は、SQL Server 用の次の累積的な更新プログラムで解決されています。
SQL Server の累積的な更新プログラムについて:
SQL Server 用の新しい累積的な更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正プログラムが含まれています。 SQL Server の最新の累積的な更新プログラムを確認してください。
回避策
この問題を回避するには、マスター データベースに対して DBCC CHECKDB コマンドを実行したときにDATA_PURITY チェックを無効にするトレース フラグ (TF) 2566 を有効にします。 ただし、これは無効な行がマスター データベースに挿入されるのを防ぐわけではありません。 DBCC CHECKDB 中のチェックを無効にするだけです。
参考資料
マイクロソフトでソフトウェア更新プログラムの説明に使用する用語集を参照してください。