SQL Server Agent Peran Database Tetap

Berlaku untuk: SQL Server Azure SQL Managed Instance

Penting

Pada Azure SQL Managed Instance, sebagian besar, tetapi tidak semua fitur SQL Server Agent saat ini didukung. Lihat Azure SQL Managed Instance perbedaan T-SQL dari SQL Server untuk detailnya.

SQL Server memiliki peran database tetap database msdb berikut, yang memberi administrator kontrol yang lebih baik atas akses ke SQL Server Agent. Peran yang tercantum dari akses paling sedikit hingga paling istimewa adalah:

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

Ketika pengguna yang bukan anggota salah satu peran ini terhubung ke SQL Server di SQL Server Management Studio, simpul SQL Server Agent di Object Explorer tidak terlihat. Pengguna harus menjadi anggota salah satu peran database tetap ini atau anggota peran server tetap sysadmin untuk menggunakan SQL Server Agent.

Izin SQL Server Agent Peran Database Tetap

Izin peran database SQL Server Agent bersifat konsentris dalam kaitannya satu sama lain -- peran yang lebih istimewa mewarisi izin peran yang kurang istimewa pada objek SQL Server Agent (termasuk pemberitahuan, operator, pekerjaan, jadwal, dan proksi). Misalnya, jika anggota SQLAgentUserRole dengan hak istimewa paling sedikit telah diberikan akses ke proxy_A, anggota SQLAgentReaderRole dan SQLAgentOperatorRole secara otomatis memiliki akses ke proksi ini meskipun akses ke proxy_A belum diberikan secara eksplisit kepada mereka. Ini mungkin memiliki implikasi keamanan, yang dibahas di bagian berikut tentang setiap peran.

Izin SQLAgentUserRole

SQLAgentUserRole adalah hak istimewa paling sedikit dari peran database tetap SQL Server Agent. Ini hanya memiliki izin pada operator, pekerjaan lokal, dan jadwal pekerjaan. Anggota SQLAgentUserRole hanya memiliki izin pada pekerjaan lokal dan jadwal pekerjaan yang mereka miliki. Mereka tidak dapat menggunakan pekerjaan multiserver (pekerjaan server master dan target), dan mereka tidak dapat mengubah kepemilikan pekerjaan untuk mendapatkan akses ke pekerjaan yang belum mereka miliki. Anggota SQLAgentUserRole dapat melihat daftar proksi yang tersedia hanya dalam kotak dialog Properti Langkah Pekerjaan SQL Server Management Studio. Hanya simpul Pekerjaan di SQL Server Management Studio Object Explorer yang dapat dilihat oleh anggota SQLAgentUserRole.

Penting

Pertimbangkan implikasi keamanan sebelum memberikan akses proksi kepada anggotaperan database agen SQL Server. SQLAgentReaderRole dan SQLAgentOperatorRole secara otomatis menjadi anggota SQLAgentUserRole. Ini berarti bahwa anggota SQLAgentReaderRole dan SQLAgentOperatorRole memiliki akses ke semua proksi SQL Server Agent yang telah diberikan kepada SQLAgentUserRole dan dapat menggunakan proksi tersebut.

Tabel berikut ini meringkas izin SQLAgentUserRole pada objek SQL Server Agent.

Tindakan Operator Pekerjaan lokal

(hanya pekerjaan yang dimiliki)
Jadwal pekerjaan

(hanya jadwal yang dimiliki)
Proksi
Membuat/mengubah/menghapus Tidak Ya

Tidak dapat mengubah kepemilikan pekerjaan.
Ya Tidak
Tampilkan daftar (hitung) Ya

Bisa mendapatkan daftar operator yang tersedia untuk digunakan dalam sp_notify_operator dan kotak dialog Properti Pekerjaan dari Management Studio.
Ya Ya Ya

Daftar proksi hanya tersedia dalam kotak dialog Properti Langkah Pekerjaan di Management Studio.
Aktifkan/Nonaktifkan Tidak Ya Ya Tidak berlaku
Lihat Properti Tidak Ya Ya Tidak
Jalankan/hentikan/mulai Tidak berlaku Ya Tidak berlaku Tidak berlaku
Menampilkan riwayat pekerjaan Tidak berlaku Ya Tidak berlaku Tidak berlaku
Menghapus riwayat pekerjaan Tidak berlaku Tidak

Anggota SQLAgentUserRole harus secara eksplisit diberikan izin EXECUTE pada sp_purge_jobhistory untuk menghapus riwayat pekerjaan pada pekerjaan yang mereka miliki. Mereka tidak dapat menghapus riwayat pekerjaan untuk pekerjaan lain.
Tidak berlaku Tidak berlaku
Lampirkan/lepas Tidak berlaku Tidak berlaku Ya Tidak berlaku

Izin SQLAgentReaderRole

SQLAgentReaderRole mencakup semua izin SQLAgentUserRole serta izin untuk melihat daftar pekerjaan multiserver yang tersedia, propertinya, dan riwayatnya. Anggota peran ini juga dapat melihat daftar semua pekerjaan dan jadwal pekerjaan yang tersedia dan propertinya, bukan hanya pekerjaan dan jadwal pekerjaan yang mereka miliki. Anggota SQLAgentReaderRole tidak dapat mengubah kepemilikan pekerjaan untuk mendapatkan akses ke pekerjaan yang belum mereka miliki. Hanya simpul Pekerjaan di SQL Server Management Studio Object Explorer yang terlihat oleh anggota SQLAgentReaderRole.

Penting

Pertimbangkan implikasi keamanan sebelum memberikan akses proksi kepada anggotaSQL Server Agentdatabaseroles. Anggota SQLAgentReaderRole secara otomatis menjadi anggota SQLAgentUserRole. Ini berarti bahwa anggota SQLAgentReaderRole memiliki akses ke semua proksi SQL Server Agent yang telah diberikan kepada SQLAgentUserRole dan dapat menggunakan proksi tersebut.

Tabel berikut ini meringkas izin SQLAgentReaderRole pada objek SQL Server Agent.

Tindakan Operator Pekerjaan lokal Pekerjaan multiserver Jadwal pekerjaan Proksi
Membuat/mengubah/menghapus Tidak Ya (hanya pekerjaan yang dimiliki)

Tidak dapat mengubah kepemilikan pekerjaan.
Tidak Ya (hanya jadwal yang dimiliki) Tidak
Tampilkan daftar (hitung) Ya

Bisa mendapatkan daftar operator yang tersedia untuk digunakan dalam sp_notify_operator dan kotak dialog Properti Pekerjaan dari Management Studio.
Ya Ya Ya Ya

Daftar proksi hanya tersedia dalam kotak dialog Properti Langkah Pekerjaan di Management Studio.
Aktifkan/Nonaktifkan Tidak Ya (hanya pekerjaan yang dimiliki) Tidak Ya (hanya jadwal yang dimiliki) Tidak berlaku
Lihat Properti Tidak Ya Ya Ya Tidak
Edit properti Tidak Ya (hanya pekerjaan yang dimiliki) Tidak Ya (hanya jadwal yang dimiliki) Tidak
Jalankan/hentikan/mulai Tidak berlaku Ya (hanya pekerjaan yang dimiliki) Tidak Tidak berlaku Tidak berlaku
Menampilkan riwayat pekerjaan Tidak berlaku Ya Ya Tidak berlaku Tidak berlaku
Menghapus riwayat pekerjaan Tidak berlaku Tidak

Anggota SQLAgentReaderRole harus secara eksplisit diberikan izin EXECUTE pada sp_purge_jobhistory untuk menghapus riwayat pekerjaan pada pekerjaan yang mereka miliki. Mereka tidak dapat menghapus riwayat pekerjaan untuk pekerjaan lain.
Tidak Tidak berlaku Tidak berlaku
Lampirkan/lepas Tidak berlaku Tidak berlaku Tidak berlaku Ya (hanya jadwal yang dimiliki) Tidak berlaku

Izin SQLAgentOperatorRole

SQLAgentOperatorRole adalah yang paling istimewa dari peran database tetap SQL Server Agent. Ini termasuk semua izin SQLAgentUserRole dan SQLAgentReaderRole. Anggota peran ini juga dapat melihat properti untuk operator dan proksi, dan menghitung proksi dan pemberitahuan yang tersedia di server.

Anggota SQLAgentOperatorRole memiliki izin tambahan pada pekerjaan dan jadwal lokal. Mereka dapat menjalankan, menghentikan, atau memulai semua pekerjaan lokal, dan mereka dapat menghapus riwayat pekerjaan untuk pekerjaan lokal apa pun di server. Mereka juga dapat mengaktifkan atau menonaktifkan semua pekerjaan dan jadwal lokal di server. Untuk mengaktifkan atau menonaktifkan pekerjaan atau jadwal lokal, anggota peran ini harus menggunakan prosedur tersimpan sp_update_job dan sp_update_schedule. Hanya parameter yang menentukan nama atau pengidentifikasi pekerjaan atau jadwal dan parameter @enabled yang dapat ditentukan oleh anggota SQLAgentOperatorRole. Jika mereka menentukan parameter lain, eksekusi prosedur tersimpan ini gagal. Anggota SQLAgentOperatorRole tidak dapat mengubah kepemilikan pekerjaan untuk mendapatkan akses ke pekerjaan yang belum mereka miliki.

Simpul Pekerjaan, Pemberitahuan, Operator, dan Proksi di SQL Server Management Studio Object Explorer dapat dilihat oleh anggota SQLAgentOperatorRole. Hanya simpul Log Kesalahan yang tidak terlihat oleh anggota peran ini.

Penting

Pertimbangkan implikasi keamanan sebelum memberikan akses proksi kepada anggotaSQL Server Agentdatabaseroles. Anggota SQLAgentOperatorRole secara otomatis menjadi anggota SQLAgentUserRole dan SQLAgentReaderRole. Ini berarti bahwa anggota SQLAgentOperatorRole memiliki akses ke semua proksi SQL Server Agent yang telah diberikan kepada SQLAgentUserRole atau SQLAgentReaderRole dan dapat menggunakan proksi tersebut.

Tabel berikut ini meringkas izin SQLAgentOperatorRole pada objek SQL Server Agent.

Tindakan Peringatan Operator Pekerjaan lokal Pekerjaan multiserver Jadwal pekerjaan Proksi
Membuat/mengubah/menghapus Tidak Tidak Ya (hanya pekerjaan yang dimiliki)

Tidak dapat mengubah kepemilikan pekerjaan.
Tidak Ya (hanya jadwal yang dimiliki) Tidak
Tampilkan daftar (hitung) Ya Ya

Bisa mendapatkan daftar operator yang tersedia untuk digunakan dalam sp_notify_operator dan kotak dialog Properti Pekerjaan dari Management Studio.
Ya Ya Ya Ya
Aktifkan/Nonaktifkan Tidak Tidak Ya

Anggota SQLAgentOperatorRole dapat mengaktifkan atau menonaktifkan pekerjaan lokal yang tidak mereka miliki dengan menggunakan prosedur tersimpan sp_update_job dan menentukan nilai untuk parameter @enabled dan @job_id (atau @job_name). Jika anggota peran ini menentukan parameter lain untuk prosedur tersimpan ini, eksekusi prosedur akan gagal.
Tidak Ya

Anggota SQLAgentOperatorRole dapat mengaktifkan atau menonaktifkan jadwal yang tidak mereka miliki dengan menggunakan prosedur tersimpan sp_update_schedule dan menentukan nilai untuk parameter @enabled dan @schedule_id (atau @name). Jika anggota peran ini menentukan parameter lain untuk prosedur tersimpan ini, eksekusi prosedur akan gagal.
Tidak berlaku
Lihat Properti Ya Ya Ya Ya Ya Ya
Edit properti Tidak Tidak Ya (hanya pekerjaan yang dimiliki) Tidak Ya (hanya jadwal yang dimiliki) Tidak
Jalankan/hentikan/mulai Tidak berlaku Tidak berlaku Ya Tidak Tidak berlaku Tidak berlaku
Menampilkan riwayat pekerjaan Tidak berlaku Tidak berlaku Ya Ya Tidak berlaku Tidak berlaku
Menghapus riwayat pekerjaan Tidak berlaku Tidak berlaku Ya Tidak Tidak berlaku Tidak berlaku
Lampirkan/lepaskan Tidak berlaku Tidak berlaku Tidak berlaku Tidak berlaku Ya (hanya jadwal yang dimiliki) Tidak berlaku

Menetapkan Beberapa Peran Pengguna

Anggota peran server tetap sysadmin memiliki akses ke semua fungsionalitas SQL Server Agent. Jika pengguna bukan anggota peran sysadmin, tetapi merupakan anggota lebih dari satu peran database tetap SQL Server Agent, penting untuk mengingat model izin konsentris dari peran ini. Karena peran yang lebih istimewa selalu berisi semua izin dari peran yang kurang istimewa, pengguna yang merupakan anggota lebih dari satu peran secara otomatis memiliki izin yang terkait dengan peran paling istimewa tempat pengguna menjadi anggotanya.

Lihat juga

Menerapkan SQL Server Agent Security
sp_update_job (Transact-SQL)
sp_update_schedule (Transact-SQL)
sp_notify_operator (Transact-SQL)
sp_purge_jobhistory (Transact-SQL)