Nasıl Yapılır: Tam güvenlik iletişim (Transact-SQL) için hedef hizmetlerini yapılandır
SQL Server uzak hizmet bağlaması başlatan hizmeti barındıran veritabanında bulunduğu bir hizmet için bir konuşma için iletişim güvenliği'ni kullanır.Daha sonra hedef hizmet barındıran veritabanı iletişim kutusu oluşturan kullanıcıya karşılık gelen kullanıcı içeriyorsa, iletişim, tam güvenlik kullanır.
Bir hedef hizmet iletişim güvenliği kullanmasını sağlamak için , bir kullanıcı olarak oturum açmak için başlatan hizmet oluşturun.Başlatan her hizmet için bir kullanıcı oluşturmak ve kurmak sertifika başlatan kullanıcı.Hedef hizmet tarafından kullanılmayan bir bildirimi bir uzak hizmet bağlaması.
Hedef hizmet tam iletişim güvenliği yapılandırmak için
Bir oturumu olmayan bir kullanıcı oluşturun.
Kullanıcı için bir sertifika oluşturun.
Not
Sertifika, ana anahtar ile şifrelenmelidir.Daha fazla bilgi için bkz: MASTER anahtar (Transact-SQL) CREATE.
Bu kullanıcı için hedef hizmet sahibi olun.
Sertifikayı bir dosyaya yedekler.
Security Note: Yalnızca yedekleme sertifika bu kullanıcı için.Yedekleme veya ilişkili özel anahtar dağıtmak sertifika.
Hedef hizmet kullandığı sırasından iletileri almak hedef hizmet kullanıcı izni verin.
Sertifika ve başlatan hizmet adı için veritabanı yöneticisi uzak veritabanı için sağlar.
Not
Için SQL Server tam iletişim güvenliği kullanmak için , uzak veritabanında sertifika yüklü olmalıdır ve sertifika için kullanıcının hedef hizmetinin uzak hizmet bağlamada belirtilen kullanıcı olması gerekir.
Elde bir sertifika uzak veritabanının güvenilir bir kaynaktan gelen bir kullanıcı.Bu genellikle, şifrelenmiş e-posta kullanarak veya disket gibi fiziksel ortam üzerindeki sertifika aktarma bir sertifika gönderiliyor içerir.
Security Note: Yalnızca sertifikaları güvenilen kaynaklardan yükleyin.
Bir oturumu olmayan bir kullanıcı oluşturun.
Yükleme sertifika başlatan hizmet.Önceki adımda oluşturduğunuz kullanıcı sertifika sahibi.
Bir oturumu başlatan hizmet sertifikası olmayan bir kullanıcı oluşturun.
Başlatan kullanıcının hedef hizmete ileti gönderme izni verin.
Example
USE AdventureWorks ;
GO
--------------------------------------------------------------------
-- The first part of the script configures security for the local user.
-- The script creates a user in this database, creates a certificate
-- for the user, writes the certificate to the file system, and
-- grants permissions to the user. Since this service is a target
-- service, no remote service binding is necessary.
-- Create a user without a login. For convenience,
-- the name of the user is based on the name of the
-- the remote service.
CREATE USER [SupplierOrdersUser]
WITHOUT LOGIN;
GO
-- Create a certificate for the initiating service
-- to use to send messages to the target service.
CREATE CERTIFICATE [SupplierOrdersCertificate]
AUTHORIZATION [SupplierOrdersUser]
WITH SUBJECT = 'Certificate for the SupplierOrders service user.';
GO
-- Dump the certificate. Provide the certificate file
-- to the administrator for the database that hosts
-- the other service.
BACKUP CERTIFICATE [SupplierOrdersCertificate]
TO FILE = 'C:\Certificates\SupplierOrders.cer';
GO
-- Make this user the owner of the target service.
ALTER AUTHORIZATION ON SERVICE::SupplierOrders TO [SupplierOrdersUser];
GO
-- Grant receive on the orders queue to the local user.
GRANT RECEIVE ON SupplierOrdersQueue
TO [SupplierOrdersUser];
GO
---------------------------------------------------------------
-- The second part of the script configures security in this
-- database for the remote service. This consists of creating
-- a user in this database, loading the certificate for the remote
-- service, and granting permissions for the user.
-- Create a user without a login.
CREATE USER [OrderPartsUser]
WITHOUT LOGIN;
GO
-- Install a certificate for the initiating user.
-- The certificate is provided by the owner of the
-- initiating service.
CREATE CERTIFICATE [OrderPartsCertificate]
AUTHORIZATION [OrderPartsUser]
FROM FILE='C:\Certificates\OrderParts.cer';
GO
-- Grant send on the target service to the user for the
-- initating service.
GRANT SEND ON SERVICE::[SupplierOrders]
TO [OrderPartsUser];
GO
See Also