Yerel hizmet hesabında çalışan SQL Server'dan bir etki alanı kullanıcısının sahip olduğu bir SSIS paketini çalıştırma


10

SQL Server Nesneleri Aktar görevlerini içeren bir SSIS paketi çalıştırmak istiyorum. İlgili sunucular aynı etki alanındadır, ancak SQL Server hizmetleri yerel hizmet hesaplarında çalışıyor. Böylece çevre şöyle görünür:

Alan adı

Sunucu 1

  • Yerel hesapta çalışan SQL Server
  • Dosya sisteminde: SSIS paketi
  • SQL Server Agent'ta: bir iş

Sunucu 2

  • Yerel hesapta çalışan SQL Server

Her iki sunucuda da oturum açabilmek için, hizmet hesabı olarak kullanılacak bir etki alanı hesabı oluşturdum. Bu etki alanı hesabını Sunucu 1'de oturum açmak ve sonra paketi dosya sisteminden yürütmek için kullandığımda, her adım başarılı olur. Ancak, işi SQL Server'a eklemeye çalıştığımda aşağıdaki sorunlardan birine giriyorum:

Durum 1. İş sahibi: yerel hesap; etki alanı hesabına SSIS adımını proxy olarak çalıştırın . İş sahibini yerel bir hesaba ayarladığımda, ancak işi etki alanı hesabına proxy olarak çalıştırdığımda, işin kendisi başarıyla yürütülecek, ancak paket aşağıdaki gibi hatalar atıyor

Yürütme şu hatayla başarısız oldu: "'LocalApplicationData' dizini mevcut değil."

Bu hata, Sunucu 1'deki etki alanı kullanıcısı için Yönetici haklarıyla bir oturum açma oluşturularak giderilebilir, ancak bu istenen bir çözüm değildir. Hesabı SQL Server aracısı / DTS gruplarından birine eklemek de çalışmaz.

Durum 2. İş sahibi: etki alanı hesabı; etki alanı hesabının proxy'si olarak SSIS adımını çalıştırın . Etki alanı hesabının adımı için hem iş sahibini hem de 'kullanıcı olarak çalıştır'ı ayarladığımda, iş aşağıdaki hata ile hiç başlamaz:

İş sahibinin (EtkiAlanı \ Etki Alanı kullanıcısı) Job namesunucu erişimine sahip olup olmadığı belirlenemedi (nedeni: Windows NT grubu / 'EtkiAlanı \ Etki Alanı kullanıcısı' kullanıcısı, hata kodu 0x5 hakkında bilgi alınamadı. [SQLSTATE 42000] (Hata 15404)) .

Son hatanın SQL Server'ın yerel bir hesapta çalıştığı ve bunun için hangi etki alanı hesaplarının sahip olduğuna bakamayacağına inanıyorum.

İşi yürütmenin doğru yolu nedir? Durum 2 bana daha temiz geliyor, ancak SQL Server yerel bir hesapta çalıştığı için imkansız görünüyor. Durum 1 de çalışır, ancak SQL Server'ımda bir etki alanı kullanıcısına yönetici hakları vermek gerçekleşmez.


GÜNCELLEME:

@JonSeigel ve @ Mr.Brownstone:

Sorunun izinlerin eksikliğinden kaynaklandığı makul görünüyor. Ancak hata, her hesap için oluşturulan klasörlerden biri olan 'LocalApplicationData' yokluğu ile ilgilidir. Zaten sunucuda paketin altında çalıştığı kimlik bilgileriyle oturum açtım, (burada bir profil dizini oluşturarak) ve profil dizini için birkaç izin kombinasyonunu denedim. Bu belirli dizinde neredeyse tüm izinleri el ile verirken bile, yukarıda belirtilen hatayı alıyorum.

Biraz daha araştırma yaparken, http://www.sqlservercentral.com/Forums/Topic391332-148-1.aspx#bm391441 adresinde bir forum iş parçacığına rastladım - ki bu da çözüm olmadan.


SQL hizmetleri için bir etki alanı hesabı kullanmamanızın bir nedeni var mı?
Eric Higgins

Evet, ama hangi nedeni bilmiyorum (DTAP döngüsü ve etki alanı her yerde mevcut değil bir şey sanırım). Her neyse, değiştirmeme izin verilmeyen belirli bir ortam.
vstrien

Durum # 1 cevap gibi görünüyor. Aldığınız hata mesajının paketin içinden olduğunu düşünüyorum. Başka bir deyişle, paket yürütülüyor, ancak içindeki bir görev, hizmet hesabının verildiğinden daha fazla izin gerektiriyor. Başarılı olmak için hesaba yönetici düzeyinde izinler vermek zorunda kalmayabilirsiniz (bunun yerine ayrıntılı izinler verin veya izinlere ihtiyaç duymayacak şekilde işlemi değiştirin).
Jon Seigel

Uzak SQL Server'a (Sunucu 2) SQL Girişleri (SQL Kimlik Doğrulaması) ekleyebilir misiniz? Bu seçeneğe sahipseniz, hedef için kullanılan SSIS bağlantısında SQL Oturum Açma özelliğini kullanabilirsiniz. Bu, paketi şifrelemek için bir parola kullanmanız gerektiği anlamına gelir, ancak sorununuzu çözecektir.
Roi Gavish

@Justicator: Belki de son çare olarak. Ancak etki alanı oturum açma işlemleri mümkün olduğunda SQL Kimlik Doğrulaması'nı kullanmamayı tercih ederim.
vstrien

Yanıtlar:


5

Benim kişisel görüşüm # 1 seçeneğinin gidilecek yol olması. Ancak, etki alanı hesabına yerel yönetici erişimi vermeniz gerekmiyor. Bana öyle geliyor ki, belirli klasörlere ve dosyalara erişim gerektiriyor ve böylece alan adı kullanıcısına sadece paketi başarıyla çalıştırmak için ihtiyaç duyduğu kaynaklara erişim izni verebiliyorsunuz. Bu, dosya / klasör özellikleri iletişim kutusu aracılığıyla yapılabilir ve güvenlik sekmesini seçebilir - üst dizinin izinlerini ayarlayıp alt özellikleri geçersiz kılacak şekilde ayarlayabileceğiniz için her dosya ve klasör için ayarlamaya gerek yoktur.

Umarım bu sana yardımcı olur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.