Symptomy
Załóżmy, że w programie Microsoft SQL Server 2012 lub SQL Server 2014 masz uprawnienie SELECT do tabeli zawierającej schemat nie należący do bazy dbo. Podczas wykonywania kwerendy z widoku sys.column_store_segments kolumna has_nulls, base_id, rozmiar, min_data_id, max_data_idi null_value zawiera wartość null .Uwaga
-
Widok sys.column_store_segments sprawdza zabezpieczenia za pomocą następującej funkcji:
HAS_PERMS_BY_NAME ( securable , securable_class , permission [ , sub-securable ] [ , sub-securable_class ] )
-
Kolumna has_nulls, base_id, rozmiar, Min_data_id, max_data_idi null_value zwraca wartość null , chyba że użytkownik ma uprawnienie wybierz.
Przyczyna
Ten problem występuje, ponieważ ze względu na sprawdzenie zabezpieczeń w widoku nie są uważane schematy, które nie są oparte na programie dbo. Z tego powodu, mimo że masz uprawnienie SELECT w tabeli z schematem innym niż dbo, nadal otrzymujesz wartość null w widoku.
Rozwiązanie
Ten problem został po raz pierwszy rozwiązany w poniższej zbiorczej aktualizacji programu SQL Server.
Zbiorcza aktualizacja 2 dla programu SQL Server 2012 z dodatkiem SP2 /en-us/help/2983175
Zbiorcza aktualizacja 12 dla programu SQL Server 2012 z dodatkiem SP1 /en-us/help/2991533
Zbiorcza aktualizacja 3 dla programu SQL Server 2014 /en-us/help/2984923
Każda nowa Zbiorcza aktualizacja programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji zbiorczej. Zapoznaj się z najnowszymi aktualizacjami zbiorczymi dla programu SQL Server:
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".