Applies ToSQL 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

徵狀

假設您在 Microsoft SQL Server 2012 或 SQL Server 2014 中擁有非 dbo 架構的資料表上,有 select 許可權。 當您從 [ sys.column_store_segments ] 視圖查詢時,[ has_nulls]、[ base_id、[ 數量級]、[ min_data_id]、[ max_data_id] 和 [ null_value ] 會顯示 null 值。注意

  • [ Sys.column_store_segments ] 視圖使用下列函數執行安全性檢查:

    HAS_PERMS_BY_NAME ( securable , securable_class , permission      [ , sub-securable ] [ , sub-securable_class ] )
  • 除非使用者擁有 select 許可權,否則欄 has_nulls、 base_id、 數量級、 min_data_id、 max_data_id和 null_value 傳回 null 值。

原因

之所以會發生此問題,是因為視圖的安全性檢查並未考慮非 dbo 架構。 因此,即使您在具有非 dbo 架構的資料表上擁有 select 許可權,您仍然可以從該視圖接收 Null 值。

每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:

狀態

Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。