Проблемы
Предположим, что у вас есть разрешение SELECT на таблицу, которая содержит схему, которая не является dbo, в Microsoft SQL Server 2012 или SQL Server 2014. При выполнении запроса из представления sys.column_store_segments столбец has_nulls, base_id, величина, min_data_id, max_data_idи null_value отображает пустое значение.Примечание
-
В представлении sys.column_store_segments выполняется проверка безопасности с помощью следующей функции:
HAS_PERMS_BY_NAME ( securable , securable_class , permission [ , sub-securable ] [ , sub-securable_class ] )
-
Столбцы has_nulls, base_id, величины, min_data_id, max_data_idи null_value возвращают значение null , если пользователь не выбрал разрешение SELECT.
Причина
Проблема возникает из-за того, что проверка безопасности представления не учитывает схему, которая не является dbo. Таким образом, несмотря на то, что у вас есть разрешение SELECT для таблицы со схемой, отличной от dbo, вы по-прежнему получаете значение null из представления.
Решение
Эта проблема впервые устранена в следующем накопительном обновлении SQL Server.
Накопительное обновление 2 для SQL Server 2012 SP2 /en-us/help/2983175
Накопительное обновление 12 для SQL Server 2012 с пакетом обновления 1 (SP1) /en-us/help/2991533
Накопительное обновление 3 для SQL Server 2014 /en-us/help/2984923
Все новые накопительные обновления для SQL Server содержат все исправления и все исправления для системы безопасности, которые были включены в предыдущий накопительный пакет обновления. Ознакомьтесь с самыми последними накопительными обновлениями для SQL Server.
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".