Share via


Service Broker iletişim güvenliği

İletişim güvenliği, şifreleme, uzaktan kimlik doğrulaması ve belirli bir konuşma için uzaktan yetkilendirme sağlar.When a conversation uses dialog security, Service Broker encrypts all messages sent outside a SQL Server instance.Service Broker conversations use dialog security by default.

İletişim güvenlik temelleri

Service Broker bir tek tek iletişim konuşma (veya iletişim) kimlik doğrulaması, yetkilendirme ve şifreleme kullanan uygulama iletişim güvenliği sağlar.Varsayılan olarak, iletişim güvenliği tüm iletişim görüşmeler kullanın.Bir iletişim kutusu başladığınızda, şifreleme ekleyerek iletişim güvenliği devam etmek bir iletişim kutusu açık olarak izin verebilirsiniz yan BEGIN DIALOG konuşma ekstresi OFF =.Ancak, konuşma hedefleri, iletişim kutusunu kullanan uzak hizmet bağlaması hizmeti varsa, güvenlik bile şifreleme = OFF.

Güvenlik kullanan bir iletişim kutusu içinService Brokerşifreler dışında gönderilen tüm iletiler birSQL Serverörnek.İçinde kalan iletiler birSQL Serverörnek her zaman şifrelenir.İletişim güvenliği, yalnızca başlatan hizmet barındıran veritabanı ve hedef hizmet barındıran veritabanı erişim güvenliği için kullanılan sertifika olması gerekir.Diğer bir deyişle, ileti yönlendirmeyi gerçekleştiren bir örneği örnek ileten iletilerin şifresini çözme olanağı sağlamak için gerekli değildir.

Service Brokeriki tür iletişim güvenliğini sağlartam güvenlik ve Anonim güvenlik . Görüşmeleri iletişim güvenliği kullanmak içinService Brokeruzak tarafı için görüşmenin eşleştirmek için uzaktan yetkilendirme sağlar yerel bir kullanıcı.

Tam güvenlik ya da anonim güvenlik görüşme kullanıyorsa, iletileri ağ üzerinde şifrelenir.Ancak, hedef veritabanı ve iletiyi şifrelemek için kullanılan strateji etkili haklar arasında iki yaklaşım biraz farklı.

Görüşme, tam güvenlik veya anonim güvenlik kullanılıp, ileti gövdesini bir simetrik oturum şifreli anahtar özel görüşme için oluşturulur.Only the keys are encrypted with private key encryption using the certificate supplied for Dialog Security.Service Broker also performs a message integrity check to help detect message corruption or tampering.

SQL Server iletişim güvenliği kullanan bir görüşme için bir oturum anahtar oluşturur.Oturum anahtarı, veritabanında depolanır ancak korumakService Brokerveritabanını. ana anahtar ile oturum anahtarını şifreler.Bir veritabanı yöneticisi anahtarı yoksa, görüşme iletilerde kalırtransmission_status hatalı bir veritabanı ana anahtar oluşturulduğunda kadar veya zaman aşımına. konuşma kadar Bu nedenle, hatta veritabanlarının aynı örneğinde barındırılan, konuşmada katılan her iki veritabanı ana anahtarlar, içermesi gerekir.Başlatma veritabanı bir ana anahtar içermiyor, iletişim başarısız olur.İletiler, hedef veritabanı bir ana anahtar yoksa, başlatma veritabanı aktarımı sırasını kalır.Son aktarım hatası bu ileti iletiler teslim nedenini gösterir.Ya da useENCRYPTION = OFF parametresi, şifrelenmemiş bir iletişim kutusu oluşturabilir veya bir veritabanı yöneticisi anahtar oluşturmak için aşağıdaki komutu kullanın:

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>'

Rahatlık içinService Brokerveritabanının ana olup olmadığını dikkate almadan devam etmek için tek bir veritabanı içinde kalan güvenli konuşma sağlayan anahtar.İki farklı veritabanı SQL Server örneklerine farklı kullanım süresi boyunca bir taşınabilir, ancak her zaman bir görüşme içinde tek bir veritabanı, veritabanı içinde kalır.Bu nedenle, konuşmaya devam edebilirsiniz.

Tam güvenlik

Full security helps to protect the initiating service from sending messages to an untrusted database and helps protect the target service from receiving messages from an untrusted database.Service Broker encrypts messages transmitted over the network when the conversation uses full security.

Tam güvenlik başlatma hizmeti hem de hedef hizmet için bir tanımlama sağlar.Tam güvenlik başlatma hizmeti hedef hizmet güven ve aynı zamanda hedef hizmet isteği servis güvenmesini gerektirir gerekir.Örneğin, bir satıcıdan parça siparişleri hizmet satıcı hizmet ve sipariş verme uygulaması güvenmeyi satıcı hizmet için sipariş uygulama gerektirebilir.

Ortak anahtarlar içeren sertifikalar değiştirerek Veritabanı yöneticileri güven.Tüm iletişim güvenliği sağlamak için her iki tarafında görüşme yerel bir kullanıcı için özel anahtar ve uzaktaki bir kullanıcı için bir ortak anahtar içerir.Başlatma hizmeti barındıran bir veritabanı içeren biruzak hizmet bağlaması.Bu uzak hizmet bağlaması için özel karşılık gelen sertifika sahibi olan yerel kullanıcının belirlediği anahtar uzak veritabanı.Bu nedenle, işlem başlatma hizmet adına hedef veritabanındaki atanmış kullanıcı olarak çalıştırın.

Hedef veritabanında bir kullanıcı içerir.Bu kullanıcının sahibi olduğu başlatma hizmet sahibi olan kullanıcının sahibi olduğu özel bir anahtara karşılık gelen bir sertifika.Bu nedenle, hedef hizmet adına işlemleri başlatan veritabanında başlatma hizmeti sahibi kullanıcı olarak çalıştırın.

Tam güvenlik kullanan, iletişim kutuları için görüşme her iki tarafında bir oturum anahtar oluşturur.Oturum anahtarı, her yönde ilk iletiyi içeren açıklandığı gibi bir anahtar değişimi anahtarla şifrelenmişSertifikaları ve Service Broker.

Anonim güvenlik

Anonymous security helps protect the initiating service against sending messages to an untrusted database.Service Broker encrypts messages transmitted over the network when the conversation uses anonymous security.

Anonim güvenlik başlatma hizmeti, hedef hizmete tanımlar ancak başlatma hizmeti hedef hizmet. tanımlama

Örneğin, çalışma yönergelerini gönderen uygulama amaçlanan hedef çalışma düzenini alıcı olan, ancak hedef veritabanı için herhangi bir özel ayrıcalık sağlamanız gerekebilir. garanti gerekebilir bir hizmet, çalışma yönergelerini gönderir.Bu durum, başlatma hizmeti içeren veritabanını hedef hizmetinin uzak hizmet bağlaması içermeli.

Hedef hizmet başlatma hizmeti kimliğini doğrulayamadığı için işlem başlatma hizmeti adına çalışmak bir üye sabit veritabanı rolüortak Hedef veritabanının.Hedef veritabanı, görüşmeyi başlatan kullanıcı hakkında bilgi alır.Hedef veritabanı içeren bir görüşme başlatan kullanıcı sertifikası gerekir.

Anonim güvenlik kullanan, iletişim kutuları için her iki tarafında görüşme kullanmak oturum anahtar başlatma veritabanı tarafından oluşturulur.Hedef veritabanı başlatma veritabanına bir oturum anahtar döndürmez.

İletişim güvenliği için güvenlik bağlamları

Service Broker Uzaktan yetkilendirme, tek bir hizmet uzaktan erişimi kontrol eder.Uzaktan yetkilendirme, gelen iletiler için güvenlik içeriğini belirleyen birSQL Serverörnek gönderilir bir hizmet.

Service Brokerher zaman içinde tamamen gerçekleşmez bir güvenli konuşma uzaktan yetkilendirme kullanan birSQL Serverörnek.İçin görüşme güvenlik bağlamını belirler, yapılandırılmış iletişim güvenliği,Service Brokerkullanan uzaktan yetkilendirme.

Service BrokerGörüşme içinde kalır, uzaktan yetkilendirme kullanmayan birSQL ServerUzaktan yetkilendirme yapılandırılmış olsa bile, örnek.İçinde bir görüşme için bir örnek,SQL Serverzaten mevcut güvenlik sorumlularıSQL ServerBu nedenle gerek yoktur uzaktan yetkilendirme için doğru güvenlik bağlamı belirlemek için kullanmak,Service Brokerişlemleri.Ancak, açıklandığı gibi daha önce bu konudaService Brokerböylece görüşme devam, veritabanlarının bir sırasında başka bir örneğine taşınmış bir oturum anahtar oluşturur konuşma.

Anonim güvenlik kullanan bir görüşme için bağlantı çalışan sabit veritabanı rolü bir üyesi olarakortak Hedef veritabanının.Bu durumda, sabit veritabanı rolüortak ileti gönderme izni olması gerekir hizmet.Ancak, rolü veritabanındaki diğer izni gerekir.

Tam güvenlik kullanan bir görüşme için görüşmenin her bağlantıda uzak hizmet bağlamada belirtilen kullanıcının izinleriyle çalışır.Örneğin, uzak hizmet bağlaması hizmet adı ilişkilendirirInventoryServiceInventoryServiceRemoteUserSQL Serverkullanan güvenlik bağlamının InventoryServiceRemoteUser sıra için hedef. uygulama InventoryService iletileri yerleştirmek kullanıcı ile

Daha fazla güvenlik için etkinleştirme işlemi için belirtilen kullanıcı farklı bir kullanıcı genellikle bir hizmet için özel anahtar sahibi olan kullanıcının..Bir özel anahtara sahip bir kullanıcı sıraya bir ileti ekleme izni yeterlidir; başka bir deyişle, SEND izin sıra kullanan hizmet.Buna karşılık, etkinleştirme işlemi için belirtilen kullanıcının istenen işi gerçekleştirmek ve bir yanıt göndermek için gereken izinleri vardır.Yukarıdaki örnekte,InventoryServiceRemoteUser stok tablosunu veya bir iade iletisi. Gönder izni gerektirmez. Kullanıcının yalnızca sıraya ileti gönderme izni olması gerekir,InventoryService uses.Saklı yordam etkinleştirme, sıra belirten kimlik bilgileri bilgilerine sahip başka bir oturumda ortaya çıkar.Kimlik bilgileri olması gerekir ileti ve iletiyi işleyen oturum, enqueues oturum arasında paylaşılan.

Güvenli bir iletişim kutusu oluşturma

ZamanService Brokerbir iletişim kurar, iletilerin hedef sıra. koyabilirsiniz; böylece iki veritabanları arasında başlatma hizmetini bir kullanıcı bağlamı hedef veritabanında oluşturmanız gerekirBu kullanıcı bağlamı başlatma hizmet hedef bir iletişim kutusunu açmak için izniniz olup olmadığını belirler.

Bunu yapmak için en esnek bir şekilde sertifika ve uzak hizmet bağlaması oluşturmaktır.Bir sertifika oluşturma hakkında daha fazla bilgi için bkz:SERTIFIKASı (Transact-SQL) CREATE.uzak hizmet bağlaması Bkz: oluşturma hakkında daha fazla bilgi içinCREATE uzak hizmet bağlaması (Transact-SQL).

Bir sertifika oluşturmak için alternatif ve uzak hizmet bağlaması iki veritabanı arasında bir güven ilişkisi kurmak için SQL Server güvenliği kullanmaktır.Sahibi başlatma hizmet, bir kullanıcı hedef hizmet temsil eder.Bu, açık veritabanı başlatma TRUSTWORTHY veritabanı özelliğini ayarlama ve verme izni hedef veritabanında bir kullanıcı olarak kimlik doğrulaması gerektirebilir.Daha fazla bilgi için bkz:yürütmek AS'nı kullanarak veritabanı kimliğe bürünme genişletme.

Not

Güvenlik bağlamı doğru şekilde ayarlanmamış, iletişim kutusunda gönderilen iletileri başlatma hizmetine sys.transmission_queue, transmission_status sütununda aşağıdaki hata iletisiyle kalır: Sunucu asıl adı ' %. * ls 'veritabanına erişmek mümkün değil' %. * ls geçerli güvenlik bağlamında.