KB2989704 - 修正: テーブルに非 dbo スキーマが含まれている場合、ビューの一部の列sys.column_store_segments SQL Server に NULL 値が表示される

適用先
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

現象

Microsoft SQL Server 2012 または SQL Server 2014 で非 dbo スキーマを持つテーブルに対する選択アクセス許可があることを想定しています。 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 ] )
    
  • has_nulls、base_id、magnitude、min_data_id、max_data_id、null_value 列は、ユーザーに選択権限がない限り NULL 値を返します。

原因

この問題は、ビューのセキュリティ チェックで非 dbo スキーマが考慮されていないために発生します。 したがって、非 dbo スキーマを持つテーブルに対する選択アクセス許可がある場合でも、ビューからは NULL 値を受け取ります。

解決策

この問題は、次の SQL Server の累積的な更新プログラムで最初に修正されました。

SQL Server 2012 SP2 の累積的な更新プログラム 2 /en-us/help/2983175

SQL Server 2012 SP1 用の累積的な更新プログラム 12 /en-us/help/2991533

SQL Server 2014 用の累積的な更新プログラム 3 /en-us/help/2984923

SQL Server 用の累積的な更新プログラムについて

SQL Server 用の新しい累積的な更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正プログラムが含まれています。 SQL Server の最新の累積的な更新プログラムを確認してください。

      

状態

Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。