Prinsipal server 'A' tidak dapat mengakses database 'B' dalam konteks keamanan saat ini

1

Saya memiliki pemicu yang mengakses database lain. tapi saya menerima kesalahan:

"Prinsipal server 'A' tidak dapat mengakses database 'B' dalam konteks keamanan saat ini"

Di mana A adalah login Pengguna. Saya kemudian mengaturnya untuk mengeksekusi sebagai pengguna yang dengan login yang sama di kedua basis data (basis data dari mana pemicu dipanggil dan basis data direferensikan dalam pemicu). Namun, kesalahan ini tetap ada. Saya mengatur database yang direferensikan menjadi layak tetapi itu tidak berhasil.

Juga, sabukan pengguna tetapi login tetapi ketika saya menjalankan pelatuk dikeluarkan dari login sa tanpa peniruan, semua berfungsi dengan baik; tetapi semua rusak ketika saya mencoba menyamar sebagai pengguna.

Bagaimana saya menjalankan pemicu ini untuk semua pengguna termasuk mereka yang tidak memiliki akses ke database referensi saya

JPO
sumber

Jawaban:

1

Anda harus memberikan akses kepada publik untuk semua item dalam database yang direferensikan bahwa pemicu diatur ke referensi, yang merupakan ide yang buruk.

Kalau tidak, Anda harus memberikan akses ke database yang direferensikan dan salah satu objeknya (tabel, tampilan, prosedur tersimpan, dll) untuk setiap login yang perlu menggunakan pelatuk.

Atau, jika pemicu Anda dipecat dari panggilan aplikasi, Anda dapat membuat login untuk aplikasi, mengkonfigurasi izin dengan tepat di kedua database untuk login itu, dan mengatur aplikasi untuk terhubung sebagai pengguna itu. Anda kemudian, tentu saja, harus mengurus masalah keamanan dan penebangan lainnya di tingkat aplikasi.

squillman
sumber
Terima kasih, saya mencoba opsi kedua Anda dan anehnya, itu tidak berhasil. Saya memberikan akses ke database yang direferensikan kepada pengguna dengan login "test" dan saya menghilangkan "Execute as" test ", semua berfungsi dengan baik ketika pengguna memulai pemicu. Tapi itu tidak berfungsi ketika saya memasukkan" Execute as "test" " melalui pengguna masih memiliki akses.
Adakah
Maaf, lihat edit saya. Anda perlu memberikan akses ke objek db yang mendasari dalam database yang direferensikan juga. Memberikan akses ke basis data saja tidak cukup.
squillman