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 akan menerima pesan kesalahan berikut:
Catatan
- Msg 6522, Level 16, Status 1, Procedure PrcedureName, baris 0 [ Batch Start Line Number]
- 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.
Resolusi
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:
Paket Layanan 2 untuk SQL Server 2016
Tentang build SQL Server 2017
Setiap build baru untuk SQL Server 2017 berisi semua hotfix dan perbaikan keamanan yang ada di build sebelumnya. Kami menyarankan Anda menginstal build terbaru untuk SQL Server 2017.
Tentang paket layanan untuk SQL Server:
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 dalam artikel berikut 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 dalam produk Microsoft sebagaimana tercantum di bagian "Berlaku untuk".
Referensi
Pelajari tentang terminologi yang digunakan Microsoft untuk menjelaskan pembaruan perangkat lunak.