Bagikan melalui


Peran basis data tetap SQL Server Agent

Berlaku untuk:SQL ServerAzure 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 dibandingkan dengan SQL Server atau batasan pada pekerjaan Agen SQL di SQL Managed Instance untuk detail lebih lanjut.

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

  • Peran Pengguna SQLAgent
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Saat 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.

Hak Akses Peran Tetap Basis Data Agen SQL Server

Izin peran database SQL Server Agent bersifat konsentris dalam kaitannya satu sama lain. Dengan kata 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 memiliki izin hanya untuk 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

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.

Tindakan Para 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 (enumerasikan) Ya

Bisa mendapatkan daftar operator yang tersedia untuk digunakan di 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
Menampilkan 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 EXECUTE izin untuk sp_purge_jobhistory menghapus riwayat pekerjaan pada pekerjaan yang mereka miliki. Mereka tidak dapat menghapus riwayat pekerjaan untuk pekerjaan lain.
Tidak berlaku Tidak berlaku
Pasang/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

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.

Tindakan Para 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 milik sendiri) Tidak.
Tampilkan daftar (enumerasikan) Ya

Bisa mendapatkan daftar operator yang tersedia untuk digunakan di 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 milik sendiri) Tidak berlaku
Menampilkan properti Tidak. Ya Ya Ya Tidak.
Ubah properti Tidak. Ya (hanya pekerjaan yang dimiliki) Tidak. Ya (hanya jadwal milik sendiri) 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 EXECUTE izin 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
Pasang/lepas Tidak berlaku Tidak berlaku Tidak berlaku Ya (hanya jadwal milik sendiri) Tidak berlaku

Izin untuk SQLAgentOperatorRole

SQLAgentOperatorRole adalah peran tetap database yang paling berkuasa dari 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 ditetapkan 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 node Log Kesalahan yang tidak dapat dilihat oleh anggota peran ini.

Penting

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.

Tindakan Pemberitahuan Para 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 milik sendiri) Tidak.
Tampilkan daftar (enumerasikan) Ya Ya

Bisa mendapatkan daftar operator yang tersedia untuk digunakan di 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 sp_update_job tersimpan dan menentukan nilai untuk @enabled parameter dan @job_id (atau @job_name). Jika anggota peran ini menentukan parameter lain untuk prosedur tersimpan ini, eksekusi prosedur gagal.
Tidak. Ya

Anggota SQLAgentOperatorRole dapat mengaktifkan atau menonaktifkan jadwal yang tidak mereka miliki dengan menggunakan prosedur sp_update_schedule tersimpan dan menentukan nilai untuk @enabled parameter dan @schedule_id (atau @name). Jika anggota peran ini menentukan parameter lain untuk prosedur tersimpan ini, eksekusi prosedur gagal.
Tidak berlaku
Menampilkan properti Ya Ya Ya Ya Ya Ya
Ubah properti Tidak. Tidak. Ya (hanya pekerjaan yang dimiliki) Tidak. Ya (hanya jadwal milik sendiri) 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
Pasang/lepas Tidak berlaku Tidak berlaku Tidak berlaku Tidak berlaku Ya (hanya jadwal milik sendiri) Tidak berlaku

Menetapkan beberapa peran kepada pengguna

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 diingat model izin konsentris dari peran ini. Karena peran yang lebih tinggi hak istimewanya selalu berisi semua izin dari peran yang lebih rendah, pengguna yang merupakan anggota dari lebih dari satu peran secara otomatis memiliki izin yang terkait dengan peran dengan hak istimewa paling tinggi di mana pengguna tersebut menjadi anggota.