FIX: Data purity corruption in sys.sysbinobjs table in master database when you log on to SQL Server by using the SA account and then run DBCC CHECKDB

Applies to: Microsoft SQL Server 2008 R2 Service Pack 2SQL Server 2008 R2 StandardSQL Server 2008 R2 Developer More

Symptoms


Consider the following scenario:
  • You enable the Common Criteria compliance option on your Microsoft SQL Server 2008 R2, SQL Server 2012, SQL Server 2008, or SQL Server 2014 instance.
  • You log on to the SQL Server instance by using the SA account.
  • You run the statement DBCC CHECKDB against the master database.
In this scenario, you receive the following error message:
Msg 2570, Level 16, State 2, Line 1
Page (#:#), slot # in object ID #, index ID #, partition ID #, alloc unit ID # (type "In-row data"). Column "name" value is out of range for data type "nvarchar". Update column to a legal value.

Cause


This issue occurs because of a product bug in Common Criteria compliance and the way it inserts one-byte data into an NVARCHAR type column of the sys.sysbinobjs table.

Resolution


Service Pack information

To resolve this issue, apply Microsoft SQL Server 2008 SP4. For more information about how to obtain SQL Server 2008 SP4, click the following article number to view the article in the Microsoft Knowledge Base:
2979596 SQL Server 2008 Service Pack 4 release information

Hotfix information

Hotfix for SQL Server 2008 SP3

A supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing this specific problem.

If the hotfix is available for download, there is a "Hotfix Download Available" section at the top of this Knowledge Base article. If this section does not appear, submit a request to Microsoft Customer Service and Support to obtain the hotfix.

Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft website: Note The "Hotfix Download Available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.


Cumulative update information

This issue was first fixed in the following cumulative update of SQL Server.

Cumulative Update 1 for SQL Server 2014

Cumulative Update 8 for SQL Server 2012 SP1

Cumulative Update 10 for SQL Server 2008 R2 SP2

Workaround


To work around this issue, enable the trace flag 2566 that disables the DATA_PURITY check when you run the DBCC CHECKDB statement against the master database.

Status


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.