Peran database tetap Agen SQL Server
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 berikut msdb
, 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
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.
Izin peran database tetap 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 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
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 dan sp_notify_operator 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 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 |
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
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 dan sp_notify_operator 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 EXECUTE izin 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 @enabled
parameter 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
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 dan sp_notify_operator 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 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 |
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 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 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.