Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Integration Services paketindeki verileri korumak için, yalnızca hassas verilerin veya paketteki tüm verilerin korunmasına yardımcı olan bir koruma düzeyi ayarlayabilirsiniz. Ayrıca, bu verileri bir parola veya kullanıcı anahtarıyla şifreleyebilir veya verileri şifrelemek için veritabanına güvenebilirsiniz. Ayrıca, bir paket için kullandığınız koruma düzeyi mutlaka statik değildir, ancak paketin yaşam döngüsü boyunca değişir. Oldukça sıklıkla, geliştirme sırasında bir koruma düzeyi ayarlarsınız ve paketi dağıtır dağıtmaz başka bir koruma düzeyi belirlersiniz.
Not alın
Bu konuda açıklanan koruma düzeylerine ek olarak, Integration Services sunucusuna kaydedilen paketleri korumak için sabit veritabanı düzeyi rolleri kullanabilirsiniz.
Hassas Bilgilerin Tanımı
Integration Services paketinde, aşağıdaki bilgiler hassasolarak tanımlanır:
Bağlantı dizesinin parola bölümü. Ancak, her şeyi şifreleyen bir seçenek belirtirseniz, bağlantı dizesinin tamamı hassas olarak kabul edilir.
Görev tarafından oluşturulan ve hassas olarak etiketlenmiş XML düğümleri. XML düğümlerinin etiketlenmesi Integration Services tarafından denetlendiğinden kullanıcılar tarafından değiştirilemez.
Hassas olarak işaretlenmiş herhangi bir değişken. Değişkenlerin işaretlenmesi Integration Services tarafından denetlenmektedir.
Tümleştirme Hizmetleri'nin bir özelliğe duyarlı olup olmadığı, Integration Services bileşeninin geliştiricisinin (bağlantı yöneticisi veya görev gibi) özelliği hassas olarak belirlemiş olup olmadığına bağlıdır. Kullanıcılar, hassas olarak kabul edilen özellikler listesine özellik ekleyemez veya 'den özellik kaldıramaz.
Şifreleme
Paket koruma düzeyleri tarafından kullanılan şifreleme, Şifreleme API'sinin (CryptoAPI) bir parçası olan Microsoft Veri Koruma API'si (DPAPI) kullanılarak gerçekleştirilir.
Parolaları kullanarak paketleri şifreleyen paket koruma düzeyleri, bir parola da sağlamanızı gerektirir. Koruma düzeyini parola kullanmayan bir düzeyden kullanan bir düzeye değiştirirseniz parola girmeniz istenir.
Ayrıca, parola kullanan koruma düzeyleri için Integration Services, .NET Framework Sınıf Kitaplığı'nda (FCL) bulunan 192 bit anahtar uzunluğuna sahip Üçlü DES şifreleme algoritmasını kullanır.
Koruma Düzeyleri
Aşağıdaki tabloda Integration Services'ın sağladığı koruma düzeyleri açıklanmaktadır. Parantez içinde yer alan değerler, DTSProtectionLevel numaralandırmasından alınan değerlerdir. Bu değerler, SQL Server Veri Araçları'nda (SSDT) paketlerle çalışırken paketin özelliklerini yapılandırmak için kullandığınız Özellikler penceresinde görünür.
Koruma düzeyi | Açıklama |
---|---|
Hassas olanları kaydetmeyin (DontSaveSensitive) | Paket kaydedildiğinde paketteki hassas özelliklerin değerlerini gizler. Bu koruma düzeyi şifrelemez, ancak bunun yerine duyarlı olarak işaretlenen özelliklerin paketle kaydedilmesini önler ve bu nedenle hassas verilerin diğer kullanıcılar tarafından kullanılamaz duruma gelmesini sağlar. Paketi farklı bir kullanıcı açarsa, hassas bilgiler boşluklarla değiştirilir ve kullanıcının hassas bilgileri sağlaması gerekir. dtutil yardımcı programı (dtutil.exe) ile kullanıldığında, bu koruma düzeyi 0 değerine karşılık gelir. |
Tümünü parolayla şifrele (EncryptAllWithPassword) | Paketin tamamını şifrelemek için bir parola kullanır. Paket, paket oluşturulduğunda veya dışarı aktarıldığında kullanıcının sağladığı bir parola kullanılarak şifrelenir. Paketi SSIS Designer'da açmak veya dtexec komut istemi yardımcı programını kullanarak paketi çalıştırmak için kullanıcının paket parolasını sağlaması gerekir. Parola olmadan kullanıcı pakete erişemez veya paketi çalıştıramaz. dtutil yardımcı programıyla kullanıldığında, bu koruma düzeyi 3 değerine karşılık gelir. |
Tümünü kullanıcı anahtarıyla şifrele (EncryptAllWithUserKey) | Paketin tamamını şifrelemek için geçerli kullanıcı profilini temel alan bir anahtar kullanır. Yalnızca paketi oluşturan veya dışarı aktaran kullanıcı paketi SSIS Designer'da açabilir veya dtexec komut istemi yardımcı programını kullanarak paketi çalıştırabilir. dtutil yardımcı programıyla kullanıldığında, bu koruma düzeyi 4 değerine karşılık gelir. Not: Kullanıcı anahtarı kullanan koruma düzeyleri için Integration Services DPAPI standartlarını kullanır. DPAPI hakkında daha fazla bilgi için https://msdn.microsoft.com/librarykonumundaki MSDN Kitaplığı'na bakın. |
Parolayla hassas şifrele (EncryptSensitiveWithPassword) | Yalnızca paketteki hassas özelliklerin değerlerini şifrelemek için bir parola kullanır. DPAPI bu şifreleme için kullanılır. Hassas veriler paketin bir parçası olarak kaydedilir, ancak bu veriler paket oluşturulduğunda veya dışarı aktarıldığında geçerli kullanıcının sağladığı bir parola kullanılarak şifrelenir. Paketi SSIS Tasarımcısı'nda açmak için kullanıcının paket parolasını sağlaması gerekir. Parola sağlanmazsa paket hassas veriler olmadan açılır ve geçerli kullanıcının hassas veriler için yeni değerler sağlaması gerekir. Kullanıcı parolayı sağlamadan paketi yürütmeyi denerse paket yürütme başarısız olur. Parolalar ve komut satırı yürütme hakkında daha fazla bilgi için bkz. dtexec Yardımcı Programı. dtutil yardımcı programıyla kullanıldığında, bu koruma düzeyi 2 değerine karşılık gelir. |
Kullanıcı anahtarıyla hassas şifreleme (EncryptSensitiveWithUserKey) | Yalnızca paketteki hassas özelliklerin değerlerini şifrelemek için geçerli kullanıcı profilini temel alan bir anahtar kullanır. Paketi yalnızca aynı profili kullanan aynı kullanıcı yükleyebilir. Paketi farklı bir kullanıcı açarsa, hassas bilgiler boşluklarla değiştirilir ve geçerli kullanıcının hassas veriler için yeni değerler sağlaması gerekir. Kullanıcı paketi yürütmeyi denerse paket yürütme başarısız olur. DPAPI bu şifreleme için kullanılır. dtutil yardımcı programıyla kullanıldığında, bu koruma düzeyi 1 değerine karşılık gelir. Not: Kullanıcı anahtarı kullanan koruma düzeyleri için Integration Services DPAPI standartlarını kullanır. DPAPI hakkında daha fazla bilgi için https://msdn.microsoft.com/librarykonumundaki MSDN Kitaplığı'na bakın. |
Şifreleme için sunucu depolama alanına güvenin (ServerStorage) | SQL Server veritabanı rollerini kullanarak paketin tamamını korur. Bir paket SQL Server msdb veritabanına kaydedildiğinde bu seçenek desteklenir. Ayrıca, SSISDB kataloğu ServerStorage koruma düzeyini kullanır Bir paket SQL Server Veri Araçları'ndan (SSDT) dosya sistemine kaydedildiğinde bu seçenek desteklenmez. |
Koruma Düzeyi Ayarı ve SSISDB Kataloğu
SSISDB kataloğu, ServerStorage koruma düzeyini kullanır. Integration Services sunucusuna bir Integration Services projesi dağıttığınızda, katalog paket verilerini ve hassas değerleri otomatik olarak şifreler. Katalog, verileri aldığınızda verilerin şifresini de otomatik olarak çözer.
Projeyi (.ispac dosyası) Integration Services sunucusundan dosya sistemine aktarırsanız, sistem koruma düzeyini otomatik olarak EncryptSensitiveWithUserKeyolarak değiştirir. SQL Server Veri Araçları'nda (SSDT) Integration Services Proje İçeri Aktarma Sihirbazı kullanarak projeyi içeri aktarırsanız, Özellikler penceresindeki ProtectionLevel özelliği EncryptSensitiveWithUserKeydeğerini gösterir.
Paket Yaşam Döngüsüne Göre Koruma Düzeyi Ayarı
SQL Server Integration Services paketini SQL Server Veri Araçları'nda (SSDT) ilk kez geliştirirken koruma düzeyini ayarlarsınız. Daha sonra paket SQL Server Management Studio'daki Integration Services'ten dağıtıldığında, içeri aktarıldığında veya dışarı aktarıldığında veya SQL Server Veri Araçları'ndan (SSDT) SQL Server'a, SSIS Paket Deposu'na veya dosya sistemine kopyalandığında, paket koruma düzeyini güncelleştirebilirsiniz. Örneğin, kullanıcı anahtarı koruma düzeyi seçeneklerinden biriyle paketleri bilgisayarınızda oluşturur ve kaydederseniz, paketi diğer kullanıcılara verdiğinizde büyük olasılıkla koruma düzeyini değiştirmek istersiniz; aksi takdirde paketi açamazlar.
Genellikle, koruma düzeyini aşağıdaki adımlarda listelenen şekilde değiştirirsiniz:
Geliştirme sırasında paketlerin koruma düzeyini varsayılan değer olarak bırakın EncryptSensitiveWithUserKey. Bu ayar, pakette yalnızca geliştiricinin hassas değerler görmesini sağlamaya yardımcı olur. Alternatif olarak, EncryptAllWithUserKeyveya DontSaveSensitivekullanabilirsiniz.
Paketleri dağıtma zamanı geldiğinde, koruma düzeyini geliştiricinin kullanıcı anahtarına bağlı olmayan bir düzeyle değiştirmeniz gerekir. Bu nedenle genellikle EncryptSensitiveWithPasswordveya EncryptAllWithPasswordseçmeniz gerekir. Üretim ortamındaki operasyon ekibi tarafından da bilinen geçici ve güçlü bir parola atayarak paketleri şifreleyin.
Paketler üretim ortamına dağıtıldıktan sonra, operasyon ekibi dağıtılan paketleri yalnızca kendilerine bilinen güçlü bir parola atayarak yeniden şifreleyebilir. Bunun yerine,
EncryptSensitiveWithUserKey veya EncryptAllWithUserKeyseçip paketleri çalıştıracak hesabın yerel kimlik bilgilerini kullanarak dağıtılan paketleri şifreleyebilirler.
Paketlerin Koruma Düzeyini Ayarlama veya Değiştirme
Paketlerin içeriğine ve parolalar gibi içerdikleri hassas değerlere erişimi denetlemek için ProtectionLevel özelliğinin değerini ayarlayın. Projeyi oluşturmak için bir projede yer alan paketlerin projeyle aynı koruma düzeyine sahip olması gerekir. Projede ProtectionLevel özellik ayarını değiştirirseniz, paketler için özellik ayarını el ile güncelleştirmeniz gerekir.
Integration Services'teki güvenlik özelliklerine genel bakış için bkz. Güvenliğe Genel Bakış (Integration Services).
Bu konudaki yordamlarda, ProtectionLevel özelliğini değiştirmek için SQL Server Veri Araçları(SSDT) veya dtutil komut istemi yardımcı programının nasıl kullanılacağı açıklanmaktadır.
Not
Bu konudaki yordamlara ek olarak, paketi içeri veya dışarı aktarırken genellikle paketin ProtectionLevel özelliğini ayarlayabilir veya değiştirebilirsiniz. Paketi kaydetmek için SQL Server İçeri ve Dışarı Aktarma Sihirbazı'nı kullandığınızda paketin ProtectionLevel özelliğini de değiştirebilirsiniz.
SQL Server Veri Araçları'nda bir paketin koruma düzeyini ayarlamak veya değiştirmek için
ProtectionLevel özelliği için Koruma Düzeyleribölümündeki kullanılabilir değerleri gözden geçirin ve paketiniz için uygun değeri belirleyin.
SQL Server Veri Araçları'nda (SSDT), paketi içeren Integration Services projesini açın.
Paketi SSIS tasarımcısında açın.
Özellikler penceresinde paketin özellikleri gösterilmiyorsa tasarım yüzeyine tıklayın.
Özellikler penceresinde, Güvenlik grubunda ProtectionLevel özelliği için uygun değeri seçin.
Parola gerektiren bir koruma düzeyi seçerseniz, PackagePassword özelliğinin değeri olarak parolayı girin.
Dosya menüsünde, değiştirilen paketi kaydetmek için Seçili Öğeleri Kaydetseçin.
Komut isteminde paketlerin koruma düzeyini ayarlamak veya değiştirmek için
ProtectionLevel özelliği için Koruma Düzeyleribölümündeki kullanılabilir değerleri gözden geçirin ve paketiniz için uygun değeri belirleyin.
dtutil Utilitykonusundaki Şifreleme seçeneğinin eşlemelerini gözden geçirin ve seçili ProtectionLevel özelliğinin değeri olarak kullanılacak uygun tamsayıyı belirleyin.
Bir Komut İstemi penceresi açın.
Komut isteminde, ProtectionLevel özelliğini ayarlamak istediğiniz paketi veya paketleri içeren klasöre gidin.
Aşağıdaki adımda gösterilen söz dizimi örneklerinde bu klasörün geçerli klasör olduğu varsayılır.
Aşağıdaki örneklerden birine benzer bir komut kullanarak paketin veya paketlerin koruma düzeyini ayarlayın veya değiştirin:
Aşağıdaki komut, dosya sistemindeki tek bir paketin ProtectionLevel özelliğini "Parolayla hassas şifrele", "strongpassword" parolasıyla düzey 2 olarak ayarlar:
dtutil.exe /file "C:\Package.dtsx" /encrypt file;"C:\Package.dtsx";2;strongpassword
Aşağıdaki komut, dosya sistemindeki belirli bir klasördeki tüm paketlerin ProtectionLevel özelliğini "Strongpassword" parolasıyla "Parolayla hassas şifrele" düzeyi 2 olarak ayarlar:
for %f in (*.dtsx) do dtutil.exe /file %f /encrypt file;%f;2;strongpassword
Toplu iş dosyasında benzer bir komut kullanıyorsanız, toplu iş dosyasına "%f", "%%f" olarak dosya yer tutucusunu girin.
Paket Projesi Koruma Düzeyi İletişim Kutusu
Paketin koruma düzeyini güncelleştirmek için Paket Koruma Düzeyi iletişim kutusunu kullanın. Koruma düzeyi koruma yöntemini, parolayı veya kullanıcı anahtarını ve paket korumasının kapsamını belirler. Koruma yalnızca tüm verileri veya hassas verileri içerebilir.
Paket güvenliği gereksinimlerini ve seçeneklerini anlamak için Güvenliğe Genel Bakış (Integration Services)görmek yararlı olabilir.
Seçenekler
Paket koruma düzeyi
Listeden bir koruma düzeyi seçin.
parola
Parolayla hassas verileri şifrele veya Tüm verileri parolayla şifrele koruma düzeyi kullanıyorsanız, bir parola yazın.
Parolayı yeniden yazma
Parolayı yeniden yazın.
Paket Parolası Diyalog Kutusu
Parolayla şifrelenmiş bir paketin paket parolasını sağlamak için Paket Parolası iletişim kutusunu kullanın. Pakette Hassas veriyi parolayla şifrele veya Tümünü parolayla şifrele koruma düzeyi kullanılıyorsa, bir parola sağlamanız gerekir.
Seçenekler
Parola
Parolayı girin.
Ayrıca Bkz.
Entegrasyon Hizmetleri (SSIS) Paketleri
Güvenliğe Genel Bakış (Integration Services)
dtutil Yardımcı Programı