Gejala
Pertimbangkan skenario berikut:
-
Anda memiliki fungsi SQL CLR di SQL Server 2016 dan 2017.
-
Fungsi CLR memanggil pernyataan Transact-SQL melalui panggilan peniruan, seperti dengan memanggil pernyataan EXECUTE AS.
Dalam skenario ini, eksekusi gagal, dan Anda menerima pesan kesalahan berikut:
Msg 6522, Tingkat 16, Negara Bagian 1, Procedure PrcedureName, Line 0 [Batch Start LineNumber]
Terjadi kesalahan .NET Framework selama eksekusi rutinitas yang ditentukan pengguna atau agregat "ProcedureName":
System.Data.SqlClient.SqlException: Prinsipal server "LoginName" tidak dapat mengakses database "DatabaseName" dalam konteks keamanan saat ini.
Pemecahan Masalah
Perbaikan ini disertakan dalam Pembaruan Kumulatif 1 untuk SQL Server 2017.
Informasi paket layanan untuk SQL Server 2016
Masalah ini telah diperbaiki dalam paket layanan berikut untuk SQL Server:
Tentang build SQL Server 2017
Setiap build baru untuk SQL Server 2017 berisi semua perbaikan keamanan dan hotfix yang ada di build sebelumnya. Sebaiknya instal build terbaru untuk SQL Server 2017.
Paket layanan bersifat kumulatif. Setiap paket layanan baru berisi semua perbaikan yang ada dalam paket layanan sebelumnya, bersama dengan perbaikan baru apa pun. Rekomendasi kami adalah menerapkan paket layanan terbaru dan pembaruan kumulatif terbaru untuk paket layanan tersebut. Anda tidak perlu menginstal paket layanan sebelumnya sebelum menginstal paket layanan terbaru. Gunakan Tabel 1 di artikel berikut ini untuk menemukan informasi selengkapnya tentang paket layanan terbaru dan pembaruan kumulatif terbaru.
Cara menentukan versi, edisi, dan tingkat pembaruan SQL Server dan komponennya
Status
Microsoft telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk".
Referensi
Pelajari tentang terminologi yang digunakan Microsoft untuk menjelaskan pembaruan perangkat lunak.