KB2989704 - KHẮC PHỤC: Một số cột trong dạng sys.column_store_segments hiển thị giá trị NULL khi bảng có sơ đồ không phải dbo trong SQL Server

Áp dụng cho
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

Triệu chứng

Giả sử bạn có quyền chọn trên bảng có sơ đồ không phải dbo trong Microsoft SQL Server 2012 hoặc SQL Server 2014. Khi bạn truy vấn từ dạng xem sys.column_store_segments, cột has_nulls, base_id độ lớn, min_data_id, max_data_id và null_value hiển thị giá trị NULL.

Lưu ý

  • Dạng xem sys.column_store_segments thực hiện kiểm tra bảo mật bằng cách sử dụng hàm sau đây:

    HAS_PERMS_BY_NAME ( securable , securable_class , permission  
        [ , sub-securable ] [ , sub-securable_class ] )
    
  • Cột có has_nulls, base_id, độ lớn, min_data_id, max_data_id và giá trị null_value sẽ trả về giá trị NULL trừ khi người dùng có quyền chọn.

Nguyên nhân

Sự cố này xảy ra vì kiểm tra bảo mật của dạng xem không xem xét sơ đồ non-dbo. Do đó, ngay cả khi bạn đã chọn quyền trên bảng có sơ đồ không phải dbo, bạn vẫn nhận được giá trị NULL từ dạng xem.

Giải pháp

Sự cố này đã được khắc phục lần đầu trong bản cập nhật tích lũy sau đây của SQL Server.

Bản cập nhật tích lũy 2 cho SQL Server 2012 SP2 /en-us/help/2983175

Bản cập nhật tích lũy 12 cho SQL Server 2012 SP1 /en-us/help/2991533

Bản cập nhật tích lũy 3 cho SQL Server 2014 /en-us/help/2984923

Giới thiệu về các bản cập nhật tích lũy cho SQL Server

Mỗi bản cập nhật tích lũy mới dành cho SQL Server sẽ chứa tất cả các bản cập nhật nóng và tất cả các bản sửa lỗi bảo mật được bao gồm trong bản cập nhật tích lũy trước đó. Xem các bản cập nhật tích lũy mới nhất dành cho doanh SQL Server:

      

Trạng thái

Microsoft đã xác nhận rằng đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong mục "áp dụng cho".