Συμπτώματα
Εξετάστε το ακόλουθο σενάριο:
-
Έχετε μια συνάρτηση SQL CLR στο SQL Server 2016 και 2017.
-
Η συνάρτηση CLR καλεί προτάσεις Transact-SQL μέσω κλήσεων απομίμησης, όπως με την κλήση της πρότασης EXECUTE AS.
Σε αυτό το σενάριο, η εκτέλεση αποτυγχάνει και λαμβάνετε το ακόλουθο μήνυμα σφάλματος:
Msg 6522, Επίπεδο 16, Πολιτεία 1, Διαδικασία PrcedureName, Γραμμή 0 [ Αριθμός γραμμής έναρξης δέσμης]
Παρουσιάστηκε ένα .NET Framework σφάλμα κατά την εκτέλεση της ρουτίνας που ορίζεται από τον χρήστη ή της συγκέντρωσης "ProcedureName":
System.Data.SqlClient.SqlException: Η κύρια αρχή του διακομιστή "LoginName" δεν είναι σε θέση να αποκτήσει πρόσβαση στη βάση δεδομένων "DatabaseName" κάτω από το τρέχον περιβάλλον ασφαλείας.
Επίλυση
Αυτή η επιδιόρθωση περιλαμβάνεται στη Συγκεντρωτική ενημέρωση 1 για SQL Server 2017.
Πληροφορίες service pack για SQL Server 2016
Αυτό το πρόβλημα έχει διορθωθεί στο ακόλουθο Service Pack για SQL Server:
Πληροφορίες για τις εκδόσεις SQL Server 2017
Κάθε νέα έκδοση για SQL Server 2017 περιέχει όλες τις άμεσες επιδιορθώσεις και τις επιδιορθώσεις ασφαλείας που υπήρχαν στην προηγούμενη δομή. Συνιστάται να εγκαταστήσετε την πιο πρόσφατη έκδοση για SQL Server 2017.
Τα service pack είναι αθροιστικά. Κάθε νέο Service Pack περιέχει όλες τις επιδιορθώσεις που βρίσκονται σε προηγούμενα Service Pack, μαζί με τυχόν νέες επιδιορθώσεις. Συνιστούμε να εφαρμόσετε το πιο πρόσφατο Service Pack και την πιο πρόσφατη συγκεντρωτική ενημέρωση για αυτό το service pack. Δεν χρειάζεται να εγκαταστήσετε ένα προηγούμενο Service Pack πριν από την εγκατάσταση του πιο πρόσφατου Service Pack. Χρησιμοποιήστε τον Πίνακα 1 στο παρακάτω άρθρο για να βρείτε περισσότερες πληροφορίες σχετικά με το πιο πρόσφατο Service Pack και την πιο πρόσφατη συγκεντρωτική ενημέρωση.
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για πρόβλημα στα προϊόντα της Microsoft που αναφέρονται στην ενότητα "Ισχύει για".
Αναφορές
Ενημερωθείτε σχετικά με την ορολογία που χρησιμοποιεί η Microsoft για την περιγραφή ενημερώσεων λογισμικού.