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:
- Bản cập nhật tích lũy mới nhất cho SQL Server 2012 SP2
- Bản cập nhật tích lũy mới nhất cho SQL Server 2012 SP1
- Bản cập nhật tích lũy mới nhất cho SQL Server 2014
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".