Συμπτώματα
Ας υποθέσουμε ότι έχετε δικαίωμα Select στον πίνακα που έχει μη dbo σχήμα στον Microsoft SQL Server 2012 ή στον SQL Server 2014. Όταν κάνετε ερώτημα από την προβολή 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, μέγεθος, Min_data_id, max_data_idκαι null_value επιστρέφει τιμή Null , εκτός εάν ο χρήστης έχει δικαίωμα επιλογής.
Αιτία
Αυτό το ζήτημα παρουσιάζεται επειδή ο έλεγχο ασφαλείας της προβολής δεν λαμβάνει υπόψη το σχήμα μη dbo. Επομένως, παρόλο που έχετε δικαίωμα επιλογής στον πίνακα με μη dbo σχήμα, εξακολουθείτε να λαμβάνετε μηδενική τιμή από την προβολή.
Επίλυση
Το πρόβλημα διορθώθηκε για πρώτη φορά με την ακόλουθη αθροιστική ενημέρωση του SQL Server.
Αθροιστική ενημερωμένη έκδοση 2 για τον SQL Server 2012 SP2 /en-us/help/2983175
Αθροιστική ενημερωμένη έκδοση 12 για τον SQL Server 2012 SP1 /en-us/help/2991533
Αθροιστική ενημερωμένη έκδοση 3 για τον SQL Server 2014 /en-us/help/2984923
Κάθε νέα αθροιστική ενημέρωση για τον SQL Server περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις επιδιορθώσεις ασφαλείας που συμπεριλήφθηκαν στην προηγούμενη αθροιστική ενημέρωση. Ανάληψη ελέγχου των πιο πρόσφατων αθροιστικών ενημερώσεων για τον SQL Server:
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα πρόβλημα στα προϊόντα της Microsoft που παρατίθενται στην ενότητα "ισχύει για".