Bagikan melalui


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 Perbedaan T-SQL Azure SQL Managed Instance 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 tidak 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 dari salah satu peran database tetap ini atau anggota peran server tetap sysadmin untuk menggunakan SQL Server Agent.

Izin Peran Database Tetap Agen SQL Server

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 dari SQL Server Management Studio. Hanya simpul Pekerjaan di SQL Server Management Studio Object Explorer yang terlihat oleh anggota SQLAgentUserRole.

Penting

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

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

Perbuatan 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 No

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/lepaskan 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 anggota SQL Server Agentdatabaseroles. Anggota SQLAgentReaderRole secara otomatis adalah 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.

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

Tidak dapat mengubah kepemilikan pekerjaan.
No Ya (hanya jadwal yang dimiliki) No
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 No Ya (hanya pekerjaan yang dimiliki) No Ya (hanya jadwal yang dimiliki) Tidak berlaku
Lihat Properti Tidak Ya Ya Ya Tidak
Edit properti No Ya (hanya pekerjaan yang dimiliki) No Ya (hanya jadwal yang dimiliki) No
Jalankan/hentikan/mulai Tidak berlaku Ya (hanya pekerjaan yang dimiliki) No Tidak berlaku Tidak berlaku
Menampilkan riwayat pekerjaan Tidak berlaku Ya Ya Tidak berlaku Tidak berlaku
Menghapus riwayat pekerjaan Tidak berlaku No

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.
No Tidak berlaku Tidak berlaku
Lampirkan/lepaskan 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 anggota SQL Server Agentdatabaseroles. Anggota SQLAgentOperatorRole secara otomatis adalah anggota SQLAgentUserRole dan SQLAgentReaderRole. Ini berarti bahwa anggota SQLAgentOperatorRole memiliki akses ke semua proksi SQL Server Agent yang telah diberikan ke SQLAgentUserRole atau SQLAgentReaderRole dan dapat menggunakan proksi tersebut.

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

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

Tidak dapat mengubah kepemilikan pekerjaan.
No Ya (hanya jadwal yang dimiliki) No
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 No 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) No Ya (hanya jadwal yang dimiliki) No
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 Pengguna Beberapa Peran

Anggota peran server tetap sysadmin memiliki akses ke semua fungsionalitas SQL Server Agent. Jika pengguna bukan anggota peran sysadmin , tetapi merupakan anggota dari 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 peran yang kurang istimewa, pengguna yang merupakan anggota lebih dari satu peran secara otomatis memiliki izin yang terkait dengan peran yang paling istimewa yang menjadi anggota pengguna.

Lihat Juga

Menerapkan Keamanan Agen SQL Server
sp_update_job (T-SQL)
sp_update_schedule (T-SQL)
sp_notify_operator (T-SQL)
sp_purge_jobhistory (T-SQL)