Saya memiliki pekerjaan di server MSSQL saya 2005, bahwa saya ingin mengizinkan pengguna basis data untuk menjalankan.
Saya tidak khawatir tentang keamanan, karena input ke pekerjaan sebenarnya berasal dari tabel database. Hanya menjalankan pekerjaan, tanpa menambahkan catatan ke tabel itu tidak akan menghasilkan apa-apa.
Saya tidak bisa menemukan cara untuk memberikan izin publik untuk pekerjaan itu.
Apakah ada cara untuk melakukan ini? Satu-satunya hal yang dapat saya pikirkan pada saat ini adalah memiliki pekerjaan terus berjalan (atau sesuai jadwal), tetapi karena itu hanya perlu melakukan pekerjaan yang sebenarnya jarang (mungkin sekali setiap beberapa bulan) dan saya ingin pekerjaan menjadi dilakukan segera setelah ada, sepertinya ini bukan solusi yang optimal.
sumber
with execute as 'loginname'
, apakah itu berhasil?Pada dasarnya, izin diperlukan pada
sp_start_job
(lihat bagian izin).Peran tersebut dijelaskan dalam " Peran Database Tetap Agen SQL Server " (ditautkan dari atas)
Edit, Jan 2012
Setelah downvote anonim 2 tahun setelah saya menjawab ...
Baca pertanyaannya. Ia mengatakan
kemudian
dan juga
Jadi komentar OP di bawah ini bertentangan dengan pertanyaan tersebut
sumber
Ini akan memungkinkan pengguna tertentu (user1) untuk menjalankan pekerjaan Agen Sql.
Anggota SQLAgentUserRole dan SQLAgentReaderRole hanya dapat memulai pekerjaan yang mereka miliki. Anggota SQLAgentOperatorRole dapat memulai semua pekerjaan lokal termasuk yang dimiliki oleh pengguna lain
USE [msdb] GO CREATE USER [user1] FOR LOGIN [user1] GO USE [msdb] GO ALTER ROLE [SQLAgentOperatorRole] ADD MEMBER [user1] GO
sumber
Saya memiliki kebutuhan serupa untuk memberikan izin kepada operator saya untuk secara manual menjalankan tugas-tugas Agen SQL Server. Saya mengikuti posting ini peran Agen Tetap Database SQL Server untuk memberikan peran SQLAgentOperatorRole.
Semoga bantuan ini bisa menyelesaikan kasus Anda.
sumber