Síntomas
Suponga que tiene el permiso SELECT en la tabla que tiene un esquema que no es DBO en Microsoft SQL Server 2012 o SQL Server 2014. Cuando consulta desde la vista Sys.column_store_segments , la columna has_nulls, base_id, magnitud, min_data_id, max_data_idy null_value muestra el valor null .Nota
-
La vista Sys.column_store_segments realiza la comprobación de seguridad con la siguiente función:
HAS_PERMS_BY_NAME ( securable , securable_class , permission [ , sub-securable ] [ , sub-securable_class ] )
-
La columna has_nulls, base_id, magnitud, min_data_id, max_data_idy null_value devuelve un valor nulo , a menos que el usuario tenga permiso Select.
Causa
El problema se produce porque la comprobación de seguridad de la vista no tiene en cuenta el esquema que no es DBO. Por lo tanto, aunque tenga permiso SELECT en la tabla con un esquema que no es DBO, aún recibirá el valor null de la vista.
Resolución
El problema se solucionó por primera vez en la siguiente actualización acumulativa de SQL Server.
Actualización acumulativa 2 para SQL Server 2012 SP2 /en-us/help/2983175
Actualización acumulativa 12 para SQL Server 2012 SP1 /en-us/help/2991533
Actualización acumulativa 3 para SQL Server 2014 /en-us/help/2984923
Cada actualización acumulativa para SQL Server contiene todas las revisiones y todas las revisiones de seguridad incluidas en la actualización acumulativa anterior. Consulte las últimas actualizaciones acumulativas para SQL Server:
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft recogidos en la sección "Se aplica a".