Saya telah menambahkan pemicu pembaruan ke salah satu tabel di database saya yang pada dasarnya memanggil prosedur tersimpan sp_update_schedule di database msdb.

Jadi pengguna yang saya akses dari Visual Studio, saya telah memberikan izin pembaca data, penulis data, dan ddladmin pengguna. Saya mencoba masuk di sql sebagai pengguna itu dan menjalankan pemicu dan berfungsi dengan baik sambil juga memperbarui tabel jadwal di msdb menggunakan sp_update_schedule.

Namun ketika saya menjalankannya dari aplikasi web, saat pembaruan ke tabel berfungsi, pemicunya gagal dengan kesalahan berikut:

"Izin EXECUTE ditolak pada objek 'sp_update_schedule', database 'msdb', skema dbo"

Apa yang saya lakukan salah?

-1
TheFallenOne 12 Mei 2021, 19:52

1 menjawab

Jawaban Terbaik

Pengguna harus sysadmin atau dalam salah satu peran tersebut.

https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-update-jobschedule-transact-sql?view=sql-server-ver15

Izin Secara default, anggota peran server tetap sysadmin dapat menjalankan prosedur tersimpan ini. Pengguna lain harus diberikan salah satu peran database tetap agen Server SQL berikut ini di database msdb:

SQLAgentUserPeran

Peran SQLAgentReader

SQLAgentOperatorPeran

Untuk detail tentang izin peran ini, lihat Peran Database Tetap Agen Server SQL.

Hanya anggota sysadmin yang dapat menggunakan prosedur tersimpan ini untuk memperbarui jadwal pekerjaan yang dimiliki oleh pengguna lain.

1
Nikki9696 12 Mei 2021, 17:14