Makale numarası: 918760 - Son Gözden Geçirme: 30 Eylül 2009 Çarşamba - Gözden geçirme: 2.0

SQL Server Agent iş adımından SSIS paketi çağırdığınızda bir SSIS paketi çalıştırın

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Belirtiler

Bir Microsoft SQL Server 2005 Tümleştirme Hizmetleri (SSIS) paketi, bir SQL Server Agent iş adımından ça??rd???n?zda, SSIS paketi çalışmaz. SSIS paketini değiştirebilir, ancak bu başarıyla SQL Server Agent dışında çalışır.

Neden

Bu sorun aşağıdaki durumlardan biri doğruysa oluşur:
  • SQL Server Agent altında paketi çalıştırmak için kullanılan kullanıcı hesabının özgün paket yazar farklıdır.
  • Kullanıcı hesabının, bağlantı veya SSIS paketi dışında kaynaklara erişmek için gerekli izinlere sahip değil.
Paket, aşağıdaki senaryolarda çalışmayabilir:
  • Geçerli kullanıcının gizlilikler paketinden şifresini çözemez. Bu senaryo yürütme hesabı ya da Cari hesabın özgün paket yazar farklıdır ve paketin ProtectionLevel özellik ayarı gizli kod dizeleri paketin şifresini geçerli kullanıcının izin oluşabilir.
  • Geçerli kullanıcı için gerekli izinlere sahip olmadığı için tümleşik güvenlik olarak kullanan BIR SQL Server bağlantısı başarısız olur.
  • Dosya erişimi, geçerli kullanıcının Bağlantı Yöneticisi'ni erişen dosya paylaşımına yazmak için gerekli izinlere sahip olmadığından başarısız olur. Örneğin, bu senaryo, bir oturum açma ve parola kullanmayan metin günlüğü sağlayıcıları ile oluşabilir. Bu senaryo, bağlıdır dosyasını Bağlantı Yöneticisi, görev SSIS dosya sistemi gibi herhangi bir görev ile de oluşabilir.
  • Kayıt defteri tabanlı SSIS paketi yapılandırması, HKEY_CURRENT_USER kayıt defteri anahtarlarını kullanır. HKEY_CURRENT_USER kayıt defteri anahtarlarının kullanıcıya özeldir.
  • Bir görev veya bir Bağlantı Yöneticisi geçerli kullanıcı hesabı doğru izinlere sahip olmasını gerektirir.

Çözüm

Bu sorunu gidermek için aşağıdaki yöntemlerden birini kullanın. En uygun yöntemi, ortam ve paket başarısız oldu, nedeni bağlıdır.

Yöntem 1: bir SQL Server Agent proxy hesabını kullan

Bir SQL Server Agent proxy hesabı oluşturun. SQL Server Agent'ın iş paketi oluşturduğunuz hesabı veya gerekli izinlere sahip bir hesap olarak çalıştırma sağlayan bir kimlik bilgisi, bu proxy hesabını kullanmalısınız.

Bu yöntem, gizli kod dizeleri şifresini çözmek için çalışır ve kullanıcı tarafından bir anahtar gereksinimlerini karşılar. Geçerli kullanıcının ve bilgisayarın geçerli SSIS paketi kullanıcı anahtarları içerir, çünkü ancak, bu yöntem başarılı sınırlı. Paket, başka bir bilgisayara taşırsanız, iş adım doğru proxy hesabını kullanır, bu nedenle, bu yöntem yine de, başarısız olabilir.

Yöntem 2: SSIS paketi ProtectionLevel özelliği için ServerStorage ayarlamak.

ProtectionLevel SSIS paket özelliği için ServerStorage değiştirin. Bu ayar, paketin bir SQL Server veritabanında saklar ve SQL Server veritabanı rolleri aracılığıyla erişim denetimi sağlar.

Yöntem 3: SSIS paketi ProtectionLevel özelliği için EncryptSensitiveWithPassword ayarlamak.

ProtectionLevel SSIS paket özelliği için EncryptSensitiveWithPassword değiştirin. Bu ayar, şifreleme için bir parola kullanır. Bu parola eklemek için SQL Server Agent iş adım komut satırı daha sonra değiştirebilirsiniz.

Yöntem 4: Kullan SSIS Package yapılandırma dosyaları

SSIS Package yapılandırma dosyaları, önemli bilgileri depolamak için kullanın ve sonra bu yapılandırma dosyaları, güvenli bir klasörde saklamak. Paketi şifrelenmemiş ve gizli kod dizeleri paketi kaydetmeye çalıştığınızda değil DontSaveSensitive için ProtectionLevel özelliği daha sonra değiştirebilirsiniz. SSIS paketi çalıştırdığınızda, gerekli bilgileri yapılandırma dosyasından yüklenir. Bunlar hassas bilgiler içeriyorsa, yapılandırma dosyalarını doğru korunur emin olun.

Yöntem 5: paket şablon oluştur

Uzun vadeli bir çözüm için varsayılan ayarda bırakılmayıp farklı bir koruma düzeyi'ni kullanan bir paketi şablonu oluşturun. Bu sorunu gelecekte paketleri gerçekleşmeyecek.

Durum

Bu davranış tasarım yüzündendir.

Daha fazla bilgi

Sorunu Yeniden Oluşturma Adımları

  1. SQLServer2005SQLAgentUser grubun parçası olan bir kullanıcı olarak oturum açın. Örneğin, yerel bir kullanıcı da oluşturabilirsiniz.
  2. Bir SSIS paketi oluşturmak ve bir ExecuteSQL görev ekleyin. OLEDB bir Bağlantı Yöneticisi yerel msdb dosyasına aşağıdaki dizeyi kullanılması: ‘ Windows kimlik doğrulaması ’-SQLSourceType: "Doğrudan giriş" - SQLStatement: "sp_who"
  3. Başarıyla çalıştığını emin olmak için paketi çalıştırın.
  4. ProtectionLevel özelliği için EncryptSensitiveWithPassword olduğuna dikkat edin.
  5. Bir SQL Server Agent işi ve işlem bir adım oluşturun. Farklı Çalıştır listesinden, iş adım çalışması için SQL Server Agent hizmeti ' ni tıklatın.
SQL Server Agent iş geçmişi metin aşağıdakine benzer bilgiler görüntülenir:

Kullanıcı olarak çalıştırılır: DOMAIN\USERNAME. Paket yürütülemedi. Adım başarısız oldu.

Paket gizlilikler şifresini çözme

EncryptSensitiveWithUserKey SSIS paket ProtectionLevel özelliği için varsayılan ayardır. Paket kaydedildiğinde SSIS yalnızca "parolaları, kullanıcı adları ve bağlantı dizeleri gibi hassas," olarak işaretlenen özelliklerini içeren bölümleri paketi şifreler. Bu nedenle, paketi yüklendiğinde, geçerli kullanıcının duyarlı özelliklerin şifresi şifreleme gereksinimleri yinelenip yinelenmeyeceği. Ancak, paketi yüklemek için şifreleme gereksinimlerini karşılamak geçerli kullanıcı yok. Bir SQL Server Agent iş adım paketi çalıştırdığınızda, varsayılan SQL Server Agent hizmet hesabı hesaptır. Bu varsayılan en büyük bir olasılıkla paketi yazar'den farklı bir kullanıcı hesabıdır. Bu nedenle, SQL Server Agent iş adım yüklemek ve iş adım çalıştırmak için ancak bu bağlantıyı tamamlayamıyor çünkü paket başarısız. Örneğin, paketin bir OLE DB ba?lant?s? veya FTP bağlantısı tamamlanamıyor. Bağlanmak için gereken kimlik bilgilerini şifresini çözemez, çünkü paket başarısız olur.

Önemli Geliştirme işlemini ve ortamın hangi hesapların gerekli ve her bilgisayarda kullanılan belirlemek için göz önünde bulundurun. ProtectionLevel özelliğinin EncryptSensitiveWithUserKey ayarı, güçlü bir ayardır. Ilk dağıtım zorluklar olur, çünkü bu ayarı indirim değil. Uygun hesaba oturum açtığınızdan, paketleri şifreleyebilirsiniz. Koruma düzeyi bir .cmd dosyası ve SQL Server Agent komut alt'ı kullanarak değiştirmek için dtutil.exe SSIS komut satırı yardımcı programını da kullanabilirsiniz. Örneğin, aşağıdaki adımları izleyin. Toplu iş dosyalarında veya döngüleri dtutil.exe yardımcı programı kullanabilirsiniz, çünkü, aynı anda birkaç paketler için aşağıdaki adımları izleyebilirsiniz.
  1. Bir parola kullanarak şifrelemek istediğiniz paketi değiştirin.
  2. Dtutil.exe yardımcı programı aracılığıyla bir işletim sistemi (exec cmd) SQL Server Agent iş adım EncryptSensitiveWithUserKey için ProtectionLevel özelliğini değiştirmek için kullanın. Bu işlem, parolayı kullanarak ve sonra paketi re-encrypting paketin şifresini içerir. Paket şifrelemek için kullanılan kullanıcı listesinde Farklı Çalıştır komut dosyasıyla başlatılan SQL Server Agent iş adım anahtarıdır.

    Not Bu anahtar, kullanıcı adı ve bilgisayar adı içerdiğinden, paketleri başka bir bilgisayara taşıma etkisini sınırlı olabilir.

Hata bilgisi SSIS paketi hatayla ilgili ayrıntılı emin olun

SQL Server Agent iş geçmişi sınırlı ayrıntıları üzerinde güvenmek yerine, SSIS SSIS paketi hatası hata bilgilerine sahip olduğunuzdan emin olmak için günlüğü kullanabilirsiniz. Paket SSIS alt komutu yerine exec</a0> alt komutunu kullanarak da çalıştırabilirsiniz.

SSIS günlüğe kaydetme hakkında

Paket yürütme ve başarısızlıkları hakkındaki ayrıntıları yakalama SSIS günlüğü ve günlük sağlayıcıları sağlar. Varsayılan olarak, bilgi paketi kütüğe kaydetmez. Bilgileri günlüğe paketini yapılandırmanız gerekir. Bilgileri günlüğe paketini yapılandırdığınızda, aşağıdakine benzer ayrıntılı bilgileri görürsünüz. Bu durumda, onu, izinleri olan bir soruna neden olduğunu anlarsınız:

OnError, ETKIALANıADı, DOMAINNAME\USERNAME, FTP Task,{C73DE41C-D0A6-450A-BB94-DF6D913797A1},{2F0AF5AF-2FFD-4928-88EE-1B58EB431D74},4/28/2006 1:51:59 PM 4/28/2006 1:51:59 PM-1073573489, 0 x, "FTP Bağlantı Yöneticisi" kullanarak FTP sunucusuna bağlanılamadı.

OnError, ETKIALANıADı, DOMAINNAME\USERNAME, Execute SQL Task,{C6C7286D-57D4-4490-B12D-AC9867AE5762},{F5761A49-F2F9-4575-9E2B-B3D381D6E1F3},4/28/2006 4: 07: 00 PM, 4/28/2006 4: 07: 00 PM-1073573396, 0 x, <a1>Bağlantı</a1> "user01.msdb" alma başarısız oldu. Bağlantı doğru şekilde yapılandırılmamış olabilir veya bu bağlantı üzerinde doğru izinlere sahip olmayabilirsiniz.

Yönet</a0> alt komutu hakkında ve bilgi ç?kt?s?n?

Exec subsystem komutunu yaklaşım kullanarak, verbose konsol dtexec.exe SSIS komut satırı yürütülebilir dosyayı aramak için SSIS komut satırı anahtarları oturum ekleyin. Ayrıca, çıktı dosyasının gelişmiş iş özelliğini kullanın. Günlük bilgilerini bir dosyaya veya SQL Server Agent iş geçmişi yönlendirmek için Adım çıktı geçmişindeki Ekle seçeneğini de kullanabilirsiniz.

Aşağıdaki komut satırı örneğidir:

dtexec.exe /FILE 
"C:\_work\SSISPackages\ProtectionLevelTest\ProtectionLevelTest\AgentTesting.dtsx" /MAXCONCURRENT " -1 
" /CHECKPOINTING OFF  /REPORTING V  /CONSOLELOG NCOSGXMT


/ Console günlüğü aşağıdakine benzer bilgi verir:

Error: 2006-04-27 18:13:34.76
   Code: 0xC0202009
   Source: AgentTesting Connection manager "(local).msdb"
   Description: An OLE DB error has occurred. Error code: 0x80040E4D.
An OLE DB record is available.  Source: "Microsoft SQL Native Client"  Hresult: 0x80040E4D  Description: "Login failed for user 'DOMAINNAME\username'.".
End Error


Error: 2006-04-28 13:51:59.19
   Code: 0xC0016016
   Source:  
   Description: Failed to decrypt protected XML node "DTS:Property" with error 0x80070002 "The system cannot find the file specified.". You may not be authorized to access this information. This error occurs when there is a cryptographic error. Verify that the correct key is available.
End Error


Log:
     Name: OnError
     Computer: COMPUTERNAME
     Operator: DOMAINNAME\username
     Source Name: Execute SQL Task
     Source GUID: {C6C7286D-57D4-4490-B12D-AC9867AE5762}
     Execution GUID: {7AFE3D9E-5F73-42F0-86FE-5EFE264119C8}
     Message: Failed to acquire connection "(local).msdb". Connection may not be configured correctly or you may not have the right permissions on this connection.
     Start Time: 2006-04-27 18:13:34
     End Time: 2006-04-27 18:13:34
End Log

Referanslar

Benzer bir sorun hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
904800  (http://support.microsoft.com/kb/904800/ ) SQL Server 2005'te bir SQL Server 2005 Tümleştirme Hizmetleri paketi çalıştırmaya çalıştığınızda "yükleme hatası" hata iletisi alıyorsunuz
Toplu işlemlerde dtutil.exe yardımcı programını kullanma hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
906562  (http://support.microsoft.com/kb/906562/ ) SQL Server 2005'te SQL Server Tümleştirme Hizmetleri (SSIS) paketlerini toplu koruma düzeyini ayarlamak için dtutil yardımcı programı'nı (dtutil.exe) nasıl kullanılır
Paket şablonları oluşturma hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
908018  (http://support.microsoft.com/kb/908018/ ) Nasıl yapılır: SQL Server Business ıntelligence Development Studio paketi şablon oluşturma


SSIS Paketi güvenlik ve ProtectionLevel özelliği hakkında daha fazla bilgi için SQL Server 2005 Books Online'da "Güvenlik konuları için Tümleştirme Hizmetleri" konusuna bakın.

Ne yazık ki, kullanıcılar varsayılan Aracısı iş adım ayarlarını bu durumda bunları put henüz bir rapor alınmamıştır. SQL Server Agent proxy'ler ve SSIS hakkında daha fazla bilgi için SQL Server 2005 Books Online'da aşağıdaki konulara bakın:
  • SQL Server Agent paketi yürütme iş planlama çizelgeleme
  • SQL Server Agent proxy oluşturma

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2008 Service Pack 1
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2005 Service Pack 3
  • Microsoft SQL Server 2005 Service Pack 2
  • Microsoft SQL Server 2005 Service Pack 1
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
Anahtar Kelimeler: 
kbmt kbprb kbsql2005ssis kbsql2005setup kbexpertiseinter kbexpertiseadvanced kbtshoot KB918760 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:918760  (http://support.microsoft.com/kb/918760/en-us/ )