Hizmet Aracısı iletişim güvenliği
İletişim güvenliği, şifreleme, uzaktan kimlik doğrulaması ve belirli bir konuşma için Uzak 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 için) kimlik doğrulaması, yetkilendirme veya şifreleme kullanmak uygulamanızın güvenlik iletişim sağlar.Varsayılan olarak, tüm iletişim görüşmeler iletişim güvenliği kullanın.Bir iletişim kutusu başladığınızda, şifreleme de dahil olmak üzere iletişim güvenlik devam etmek bir iletişim kutusu açık olarak izin verebilirsiniz = off başlamak iletişim konuşma deyim üzerinde yan tümce tümce tümce.Ancak, konuşma hedefleri iletişim kutusunu kullanır hizmet için uzak hizmet bağlaması varsa, hatta güvenlik şifreleme = off.
Güvenlik, kullanan bir iletişim için Service Broker dışında gönderilen tüm iletileri şifreler bir SQL Server örnek.İçinde kalan iletileri bir SQL Server örnek şifrelenmiş asla.İletişim güvenliği başlatma hizmet barındıran veritabanı ve hedef hizmet barındıran veritabanı güvenliği için kullanılan sertifikalar erişiminizin olması gerekir.Diğer bir deyişle, ileti yönlendirmeyi gerçekleştiren bir örneği örnek ileten iletilerin şifresini yeteneğine sahip gerekli değildir.
Service Brokeriki tür iletişim güvenliği sağlar tam güvenlik ve Anonim güvenlik.İletişim güvenliği kullanan görüşmeleri için Service Broker sağlayan uzak yetkilendirme eşleştirmek uzak tarafında görüşme için yerel bir kullanıcı.
Konuşma tam güvenlik ya da anonim güvenlik kullandığında iletileri ağ üzerinde şifrelenir.Ancak, hedef veritabanı ve ileti için kullanılan strateji etkili hak şifreleme iki yaklaşım arasında biraz farklı.
Konuşma tam güvenlik veya anonim güvenlik kullanıp kullanmayacağını simetrik oturum ile şifreli ileti gövdesi anahtar belirli bir konuşma 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 konuşma için bir oturum anahtar oluşturur.Oturum anahtarı veritabanında saklandığı sırada korumak için Service Broker için veritabanı ana anahtar ile oturum anahtarını şifreler.İletileri görüşme için bir veritabanı ana anahtar kullanılamıyorsa, kalır transmission_status bir hata ile bir veritabanı ana anahtar oluşturuluncaya kadar veya kadar konuşma zaman aşımına uğrar.Hatta veritabanlarının aynı barındırırken görüşmeye katılan her iki veritabanı ana anahtarlar, bu nedenle içermelidir örnek.Başlatan veritabanı ana anahtar içermiyor, iletişim başarısız olur.İletiler, hedef veritabanı ana anahtar içermiyorsa, başlatan veritabanı iletim sırada kalır.İletiler teslim edilemez nedeni son aktarım hatası için bu iletileri gösterir.Kullan ENCRYPTION = OFF parametresi, şifrelenmemiş bir iletişim kutusu oluşturabilir veya bir veritabanı ana anahtar oluşturmak için aşağıdaki komutu kullanın:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>'
İçin uygunluk, Service Broker Güvenli konuşmaları içerip içermediğine veritabanı ne olursa olsun devam etmek için tek bir veritabanı içinde kalmasını sağlarana anahtar. İki farklı veritabanları farklı sql Server örneklerine bir konuşma kullanım süresi boyunca taşınabilir, ancak her zaman bir konuşma 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 hem başlatan hem de hedef hizmet için bir tanımlama sağlar.Tam güvenlik başlatma hizmeti hedef hizmetine güveniyor ve aynı zamanda hedef hizmet başlatma hizmeti güven gerektirir gerektirir.Örneğin, satıcı ve satıcı Hizmetleri sipariş verme uygulaması güvenmeyi güven için sipariş verme uygulaması bir satıcıdan parça siparişleri bir hizmet gerektirebilir.
Ortak anahtarlar içeren sertifikalar değiş tokuş ederek veritabanı yöneticileri güven.Tam iletişim güvenliği sağlamak için her iki tarafında görüşme yerel bir kullanıcı için özel bir anahtar ve uzak bir kullanıcının ortak anahtar içerir.Başlatan hizmeti barındıran veritabanı içeren bir uzak 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ında.Bu nedenle, işlemleri başlatan hizmet adına hedef veritabanındaki atanmış kullanıcı olarak çalıştırın.
Hedef veritabanı kullanıcı içerir.Bu kullanıcının sahibi olduğu özel karşılık gelen sertifika anahtar başlatan hizmet sahibi olan kullanıcı tarafından ait.Bu nedenle, hedef hizmet adına işlemleri başlatan veritabanında başlatan hizmet sahibi olan kullanıcı olarak çalıştırın.
Tam güvenlik kullanan için iletişim kutuları, her iki tarafında görüşme bir oturum anahtar oluşturur.Oturum anahtarı, her yönde ilk iletiyi içeren bölümünde açıklandığı gibi bir anahtar değişim anahtarı ile şifrelenmiş Sertifikaları ve Hizmet Aracısı.
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şlatan hizmet için hedef hizmeti tanıtan, ancak hedef hizmet başlatma hizmete tanıtmak değil.
Örneğin, gönderen iş emirlerinin bir uygulama çalışma düzenini alıcısının hedef olduğunu, ancak hedef veritabanı için herhangi bir özel ayrıcalık sağlamak gerekmez garanti gerekebilir bir hizmet , iş emirlerinin gönderir.Bu durum, başlatan hizmeti içeren veritabanını hedef hizmeti için uzak hizmet bağlaması içermesi gerekir.
Hedef hizmet başlatma hizmeti kimliğini doğrulayamadığı için işlemleri başlatan hizmet adına sabit veritabanı rolü üye olarak çalışan ortak hedef veritabanında.Hedef veritabanı hiçbir görüşme başlatan kullanıcı hakkında bilgi alır.Hedef veritabanı görüşme başlatan kullanıcı için bir sertifika içermesi gerekir.
Anonim güvenlik kullanan için iletişim kutuları, her iki tarafında görüşme kullanın oturum anahtar başlatan veritabanı tarafından oluşturulan.Hedef veritabanı başlatma veritabanına oturum anahtar döndürmez.
Güvenlik bağlamı iletişim güvenliği
Service Broker Uzak yetkilendirme, ayrı bir hizmet uzaktan erişimi kontrol eder.Uzak yetkilendirme içinde gelen iletiler için güvenlik bağlamını belirleyen bir SQL Server örnek gönderilen bir hizmet.
Service Brokerher zaman uzak yetkilendirme tamamen içinde gerçekleşmez güvenli bir konuşma için kullandığı bir SQL Server örnek.Konuşma güvenlik bağlamını belirler, yapılandırılmış iletişim güvenliği, Service Broker kullanan uzak yetkilendirme.
Service BrokerKonuşma içinde kaldığında uzaktan yetkilendirme kullanan bir SQL Server Uzak yetkilendirme yapılandırılmış olsa dahi, örnek.örnek içinde bir görüşme için SQL Server güvenlik sorumluları için var SQL Server, böylece uzak yetkilendirme için doğru güvenlik bağlamı belirlemek için kullanmak üzere gerek yoktur Service Broker işlemleri.Ancak, olarak bu konunun önceki kısımlarında anlatıldığı Service Broker bir oturum anahtar oluşturur, böylece veritabanlarını birini diğerine taşındığında konuşmaya devam örnek sırasında Konuşma.
Anonim güvenlik kullanan bir konuşmada, bağlantı sabit veritabanı rolü üye olarak çalışan ortak hedef veritabanında.Bu durumda, sabit veritabanı rolü ortak bir ileti göndermek için izninizin olması hizmet.Ancak, rolü veritabanında diğer izinleri gerekir.
Tam güvenlik kullanan bir konuşmada, uzak hizmet bağlaması içinde belirtilen kullanıcının izinleriyle her iki taraftaki bağlantı konuşma gibi davranır.uzak hizmet bağlaması associates hizmet adı, örneğin, InventoryService kullanıcı InventoryServiceRemoteUser, SQL Server için güvenlik bağlamını kullanır InventoryServiceRemoteUser iletiler için koymak için InventoryService sıra için hedef hizmeti üzerinde uygulama.
Daha iyi güvenlik için bir hizmet için özel anahtar sahibi olan genellikle etkinleştirme için belirtilen kullanıcı kullanıcıdan farklı bir kullanıcıdır.Bir özel sahibi olan bir kullanıcı anahtar yalnızca bir ileti sıraya eklemek için izin gerekir — yani sıra kullanan hizmet için Gönder izni.Buna karşılık, etkinleştirme için belirtilen kullanıcı istenen çalışmaları gerçekleştirmek ve bir yanıt göndermek için gerekli olan izinlere sahiptir.Önceki örnekte, InventoryServiceRemoteUser stok sorgulamak için izinleri gerektiren tablo veya iade iletisi gönderin.Kullanıcı yalnızca sıraya ileti gönderme izni gerekiyor, InventoryService kullanır.Saklı yordam etkinleştirme ortaya farklı bir oturum sıra belirten kimlik bilgileriyle.Kimlik bilgileri olması gereken arasında oturum o enqueues paylaşılan ileti ve ileti işleme oturum.
Güvenli iletişim oluşturma
Zaman Service Broker bir iletişim kurar, iletilerin hedef sıra. yerleştirebilirsiniz, böylece iki veritabanları arasında başlatan hizmet kullanıcı bağlamı hedef veritabanında oluşturmanız gerekirBu kullanıcı bağlamı başlatma hizmet hedef için bir iletişim kutusu açmak için izne sahip olup olmadığını belirler.
Bunu yapmak için en esnek bir şekilde sertifika ve uzak hizmet bağlaması oluşturmaktır.Sertifika oluşturma hakkında daha fazla bilgi için bkz: Sertifika (Transact-SQL) oluştur.uzak hizmet bağlaması Bkz: oluşturma hakkında daha fazla bilgi için Uzak hizmet bağlama (Transact-SQL) oluştur.
Sertifika ve uzak hizmet bağlaması oluşturma alternatif iki veritabanları arasında bir güven ilişkisi kurmak için sql Server güvenlik kullanmaktır.Başlatan hizmet sahibi bir hedef hizmeti kullanıcı kimliğine bürünür.GÜVENİLİR veritabanı özellik açık başlatan veritabanında ve verme izni hedef veritabanında bir kullanıcı için kimlik doğrulaması gerektirebilir.Daha fazla bilgi için bkz: execute as kullanarak veritabanı kimliğe bürünme genişletme.
Not
Güvenlik içeriği ise küme en doğru iletişim kutusunda gönderilen iletileri başlatan hizmetine sys.transmission_queue de transmission_status sütununda aşağıdaki hata iletisiyle kalır: Sunucu asıl adı ' %. * ls' veritabanına erişim olanağına sahip değil ' %. * ls' Geçerli güvenlik bağlamı altında.
Ayrıca bkz.