KB2989704 – PATAISYMAS: kai kuriuose rodinio sys.column_store_segments stulpeliuose rodoma NULL reikšmė, kai lentelėje yra ne DBO schema „SQL Server“

Taikoma
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

Požymiai

Tarkime, kad turite teisę pasirinkti lentelę, kurioje yra ne dbo schema "Microsoft „SQL Server“ 2012" arba "„SQL Server“ 2014". Kai užklausą pateikiate iš sys.column_store_segments rodinio, stulpelio has_nulls, base_id, dydis, min_data_id, max_data_id ir null_value reikšmė yra NULL.

Pastaba

  • sys.column_store_segments rodinyje saugos patikra atliekama naudojant šią funkciją:

    HAS_PERMS_BY_NAME ( securable , securable_class , permission  
        [ , sub-securable ] [ , sub-securable_class ] )
    
  • Stulpeliai has_nulls, base_id, dydis, min_data_id, max_data_id ir null_value grąžina reikšmę NULL, nebent vartotojas turi pasirinkimo teisę.

Priežastis

Taip nutinka, nes atliekant rodinio saugos patikrą neatsižvelgiama į ne DBO schemą. Todėl, net jei turite pasirinkimo teises lentelėje su ne DBO schema, vis tiek gaunate NULL reikšmę iš rodinio.

Sprendimas

Problema pirmą kartą buvo išspręsta šiame kaupiamajame „SQL Server“ naujinime.

2 kaupiamasis naujinimas, skirtas „SQL Server“ 2012 SP2 /en-us/help/2983175

12 kaupiamasis naujinimas, skirtas „SQL Server“ 2012 SP1 /en-us/help/2991533

3 kaupiamasis naujinimas, skirtas „SQL Server“ 2014 /en-us/help/2984923

Apie kaupiamuosius „SQL Server“ naujinimus

Kiekviename naujame „SQL Server“ kaupiamajame naujinime yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo įtrauktos į ankstesnį kaupiamąjį naujinimą. Peržiūrėkite naujausius "„SQL Server“" kaupiamuosius naujinimus:

      

Būsena

„„Microsoft““ patvirtino, kad tai yra „„Microsoft““ produktų, išvardytų dalyje „Taikoma“, problema.