SSIS paketleriniz BIDS’te çalışırken, SQL Server Agent Job’ında çalışmıyorsa…


Ne güzel, SSIS paketinizi tamamladınız. Tüm testleri yaptınız, doğru ve istediğiniz performansta çalışıyor. Hatta loglama, istisna ve hata yönetme (exception ve error handling), konfigürasyon dosyaları gibi işleri bile yaptınız. Şimdi sıra geldi otomasyona…

Bunun için bir SQL Server Agent job’ında SSIS paketi çalıştıran bir job step oluşturmanız gerekir. Onu da oluşturdunuz. Ama o da ne, job altında normalde tıkır tıkır çalışmakta olan paketiniz çalışmıyor!

Bunun birkaç sebebi olabilir:
– Dosya sistemine deploy ettiyseniz paket dosyasına ya da yine dosya sisteminde bulunan çeşitli csv dosyalarınıza kendi hesabınızın erişimi vardır ama SQL Server Agent’ın kullandığı hesabın bunlara erişim yetkisi yoktur.
– Bağlandığınız çeşitli veri kaynaklarıyla ilgili olarak yine etkileşimli çalıştırmada kullandığınız hesap yetkiye sahiptir ama SQL Server Agent’ın hesabının bunlar üzerinde yetkisi yoktur.

Peki ne yapmak lazım?

Ana adımları sıralayacağım, herbirinin nasıl yapıldığı gibi ekran görüntülerine falan girmiyorum. Özünde yapmanız gereken şeyin sebebini aktarayım önce: SQL Server Agent’ın paketi çalıştırmayla ilgili gerekli tüm yetkileri yok. Ama sakın bu yetkileri düşünmeden vermeye kalkmayın Agent hesabına. Bir paket için 3 yetki, başka bir paket için 5 yetki derken, bir de bakarsınız SQL Server Agent’ın kullandığı hesabın herbi şeye yetkisi var. Onun yerine kademeli bir yetkilendirme süreci gerekiyor.

Şimdi o yetkilendirme sürecinin ara kavramların ve izlenmesi gereken aşamaları anlatıyorum.

1. Öncelikle Management Studio’da SQL Server’ınızın altındaki Security düğümünden erişebileceğiniz Credential’larla ilgili ekrandan yeni bir credential tanımlayın. Bir credential login’in tersidir. Yani veritabanına erişim için değil, veritabanından dışarıya erişim için kullanılır. Standart bir credential, domain ismi, hesap ismi ve hesap parolasından oluşur.
2. SQL Server Agent altındaki proxy’lere gelerek, tanımladığınız credential’ı kullanan bir proxy oluşturun ve bu proxy’i SSIS paketleriyle ilgili subsysteme oluşturduğunuz ekrandan atayın.
3. Artık SSIS’le ilgili job step’te runas kısmında bu proxy bir seçenek olarak gelecektir.

Aradaki izinleri de doğru bir şekilde verdiyseniz (paket içindeki yetki gereksinimleriyle ilgili olarak credential’a karşılık gelen hesaba gereken yetkileri vermek ya da proxy’i kullanmak için job sahibine izin vermek gibi) otomasyonda artık bir sorununuz olmayacaktır.

Yapılması gereken bir başka çalışma da, yetki ihtiyaçlarına ve önemlerine bağlı olarak job stepleri gruplamak ve bunlar için uygun proxy’ler tasarlamaktır.

Bu yazı SQL Server, SSIS içinde yayınlandı ve olarak etiketlendi. Kalıcı bağlantıyı yer imlerinize ekleyin.

1 Response to SSIS paketleriniz BIDS’te çalışırken, SQL Server Agent Job’ında çalışmıyorsa…

  1. Muharrem ATAMER dedi ki:

    Eğer 64 bitlik br işletim sistemi kullanıyorsanız ve eriştiğiniz veri kaynakları 32 bitlik sistemler ise bu durumda da paketiniz sunucuda çalışmayabilir. Bunu sorunu gidermek için de Paket’i 32 bit olarak çalıştırmalısınız.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s