Önceki makalemizde dikkat ederseniz msdb veritabanına public yetkisi dışında sql agent’ı görmek için sql agent role’lerin tanımlanması lazımdı ama biz msdb veritabanına yetkili olmasın ama bir job çalıştırabilsin diyoruz. Bunun için aşağıdaki adımlar izlenir.
Msdb veritabanına public yetkisi verdikten sonra public yetkisi verdiğimiz login ile bağlandığımızda sql agent’ı görememekteyiz.

Yapacağımız işlemde AGENT1 kullanıcısına oluşturacağımız stored procedure üzerinde yetki verdikten sonra bu stored procedure ilgili job’ı çalıştırmış olacağız. S1\Administrator kullanıcımızdaki job aşağıda gözükmektedir.

Msdb veritabanının altında AGENTJOB job’ını çalıştıran bir stored procedure tanımladık
use msdb
GO
create procedure dbo.JobCalistir
with execute as owner
as
exec sp_start_job @job_name = 'AGENTJOB'

Bundan sonra yapacağımız işlem bu procedure’e sağ tıklayıp permission kısmından yetki vermemiz gerekiyor AGENT1 kullanıcısına execute yetkisi verilir.


Job’ın üzerinde tanımlamış olduğumuz login ile sql server’a giriş yapıyorum.
AGENT1 ile login olduktan sonra msdb veritabanı altında ilgili stored procedure’nin geldiğini gözlemliyorum.

Job’ı çalıştırmadan önce sql agent altında ilgili job’ın view history’sine bakalım. S1\Administrator kullanıcısından gözlemliyoruz zaten AGENT1 kullanıcısı göremiyor.



Görmüş olduğumuz gibi herhangi bir login’e sadece msdb bazında yetki vererek job’ı stored procedure aracılığıyla çalıştırabiliriz. Başka bir makalede görüşmek dileğiyle..
“Yeryüzündeki bütün ağaçlar kalem olsaydı, deniz de -ardından ona yedisi daha eklenmek üzere- mürekkep olsaydı yine de Allah’ın sözleri tükenmezdi; Allah azîzdir, hakîmdir.”Lokman-27