KB2989704 - FIX: Some columns in sys.column_store_segments view show NULL value when the table has non-dbo schema in SQL Server

Applies To
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard

Symptoms

Assume that you have select permission on the table that has non-dbo schema in Microsoft SQL Server 2012 or SQL Server 2014. When you query from the sys.column_store_segments view, the column has_nulls, base_id, magnitude, min_data_id, max_data_id, and null_value shows NULL value.

Note

  • The sys.column_store_segments view performs the security check by using the following function:

    HAS_PERMS_BY_NAME ( securable , securable_class , permission  
        [ , sub-securable ] [ , sub-securable_class ] )
    
  • The column has_nulls, base_id, magnitude, min_data_id, max_data_id, and null_value returns NULL value unless the user has select permission.

Cause

The issue occurs because the security check of the view does not consider the non-dbo schema. Therefore, even though you have select permission on the table with non-dbo schema, you still receive NULL value from the view.

Resolution

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

Cumulative Update 2 for SQL Server 2012 SP2 /en-us/help/2983175

Cumulative Update 12 for SQL Server 2012 SP1 /en-us/help/2991533

Cumulative Update 3 for SQL Server 2014 /en-us/help/2984923

About cumulative updates for SQL Server

Each new cumulative update for SQL Server contains all the hotfixes and all the security fixes that were included with the previous cumulative update. Check out the latest cumulative updates for SQL Server:

      

Status

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