Loginlere Job Çalıştırma Yetkisi Vermek

18 Nis by NURULLAH ÇAKIR

Loginlere Job Çalıştırma Yetkisi Vermek

Makalemize başlamadan önce SQL Login’in nasıl oluşturulup yetkilendirildiğini detaylı olarak incelemeniz için “Login oluşturmak ve yetkilendirmek” isimli makalemi okumanızı tavsiye ederim.

 

Job’lar üzerinde yetki vermek için, yetkilendirmek istediğimiz login’e msdb veritabanındaki bazı veritabanı rollerini vermemiz gerekiyor. Job çalıştırmak için gerekli veritabanı rolleri aşağıdaki gibidir.

 

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

 

Fakat bu yetkileri verdiğinizde kullanıcı job’larınız üstünde istemediğiniz değişiklikler yapabilir. Msdb veritabanındaki bu rollerin detaylarını “SQL Server Agent Rolleri” isimli makalemde bulabilirsiniz.

 

Bazen bir login’e sadece bir job’ı çalıştırma yetkisi vermeniz gerekebilir. Böyle bir durumda aşağıdaki script yardımıyla bir stored procedure oluşturup, yetki vermek istediğimiz login’e bu stored procedure üzerinde execute yetkisi vererek ihtiyacınızı karşılayabilirsiniz.

 

use msdb
GO
create procedure dbo.JobCalistir
with execute as owner
as
exec sp_start_job @job_name = 'Çalıştırmasını istediğiniz job ismi'

 

Yukardaki stored procedure’e yetki vermek istediğimiz login’e msdb veritabanında öncelikle public yetkisi tanımlıyoruz. “Login oluşturmak ve yetkilendirmek” isimli makalemde detayları bulabilirsiniz. Daha sonra msdb veritabanında oluşturduğumuz stored procedure’e sağ tıklayıp properties diyoruz.

 

 

Daha sonra permission sekmesine gelerek search ve Browse diyerek ilgili login’i seçiyoruz ve ok diyoruz. Ardından Execute yetkisini seçerek ok’e tıklıyoruz.

 

 

Yetki verme işlemini tamamlamış olduk. İlgili login bu stored procedure’ü aşağıdaki şekilde çalıştırarak job’ı başlatabilir.

 

exec msdb.dbo.JobCalistir

 

Loading

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir