Bu makalede, SQL Server 2005'in birden çok örneği üzerinde SQL Server 2005 Service Broker uzak güvenlik sertifikaları nasıl kullanılır. Bu durumda sertifikalarını kullanarak güvenli bağlantılar sağlayabilir.
SQL Server 2005 Service Broker uzak güvenlik, SQL Server birden çok örneği bu işlemleri her iki iletişim güvenliği kullanmak veya güvenlik transport gerektiren işlemleri içerir. Aşağıdaki örnek, SQL Server 2005 Service Broker uzak SQL Server 2005'in iki örneği güvenliği için sertifikalar kullanmak üzere gösterilmiştir. Bu örnekte, aşağıdaki koşullar doğruysa varsayılmaktadır:
Dört sertifikaları ve özel anahtar dosyaları dört (makecert.exe) <a0>sertifika oluşturma aracını kullanarak oluşturduğunuz. Bu örnekte, bu dosyaları her iki C:\Certificates klasörüne kopyalandıktan ve dosyaları aşağıdaki adlandırıldığı varsayılmaktadır:
SourceServer.cer
SourceServer.pvk
TargetServer.cer
TargetServer.pvk
DlgSourceServer.cer
DlgSourceServer.pvk
DlgTargetServer.cer
DlgTargetServer.pvk
Sınama sertifikası oluşturma hakkında daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:
SQL Server 2005'in iki örneği, aynı ağdaki farklı sunucularda yüklü. Bu örnekte, ilk sunucunun ServerSrc olarak adlandırılır ve ikinci sunucu ServerTag adlı varsayar.
Iki örnekleri için SQL Server sysadmin sabit sunucu rolü olan oturumların kullanarak bağlanın.
TCP bağlantı noktası 4022 kullanılabilir olup olmadığını yaptınız. Bu örnekte, bağlantı noktasını birbirine bağlanmak için iki örnekleri tarafından kullanılır.
Önceki tüm koşullar karşılandığında, aşağıdaki yordamları kullanın.
ServerSrc sunucudaki SQL Server örneği için SQL Server 2005 Service Broker'ı yapılandırma
Örnek ServerSrc sunucudaki SQL Server Management Studio'yu kullanarak bağlanın.
Sorgu düzenleyicisinde aşağıdaki Transact-SQL deyimlerini çalıştırın: <a1>
--Configure the transport security.
USE MASTER
go
--Create a master key in the master database.
CREATE MASTER KEY ENCRYPTION BY password = 'MasterKeyPassword'
Go
--Create a certificate for transport security.
CREATE CERTIFICATE ctfSourceServerMaster
FROM FILE = 'C:\Certificates\SourceServer.cer'
WITH PRIVATE KEY ( FILE = 'C:\Certificates\SourceServer.pvk' , DECRYPTION BY PASSWORD = 'PrivateKeyPassword' )
ACTIVE FOR BEGIN_DIALOG = ON
GO
--Create the login and the user to own a certificate.
CREATE LOGIN remcert WITH PASSWORD = 'LoginPassword'
GO
CREATE USER remcert FOR LOGIN remcert
GO
CREATE CERTIFICATE ctftTargetServerMaster
AUTHORIZATION remcert
FROM FILE = 'C:\Certificates\TargetServer.cer'
ACTIVE FOR BEGIN_DIALOG = ON
GO
--Create a new endpoint for SQL Server 2005 Service Broker, and set the AUTHENTICATION option to use the ctfSourceServerMaster certificate.
CREATE ENDPOINT BrokerEndpoint
STATE = STARTED
AS TCP
(
LISTENER_PORT = 4022
)
FOR SERVICE_BROKER (AUTHENTICATION = CERTIFICATE ctfSourceServerMaster)
GO
--Grant the required permissions to the remcert login.
GRANT CONNECT TO remcert
GRANT CONNECT ON ENDPOINT::BrokerEndpoint to remcert
GO
--Create a new database for testing.
CREATE DATABASE SourceDB
GO
USE SourceDB
GO
--Configure the dialog security.
--Create a master key in the SourceDB database.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MasterKeyPassword'
--Create a certificate for the SourceDB database.
CREATE CERTIFICATE ctfDlgSourceServer
FROM FILE = 'C:\certificates\DlgSourceServer.cer'
WITH PRIVATE KEY
(FILE='C:\certificates\DlgSourceServer.pvk',decryption by password='PrivateKeyPassword')
ACTIVE FOR BEGIN_DIALOG = ON
GO
--Create a user for the remcert login that owns a certificate for the dialog security.
CREATE USER remcert for LOGIN remcert
GO
CREATE CERTIFICATE ctfDlgTargetServer
AUTHORIZATION remcert
FROM FILE = 'C:\certificates\DlgTargetServer.cer'
ACTIVE FOR BEGIN_DIALOG = ON
--Create a message type, a contract, a queue, and a service.
CREATE MESSAGE TYPE [mymsg] VALIDATION = NONE
CREATE CONTRACT [mycon] ([mymsg] SENT BY ANY)
CREATE QUEUE [myQueue]
CREATE SERVICE [SourceService] ON QUEUE [myQueue]([mycon])
GO
--Grant the send permission to the user.
GRANT SEND ON SERVICE::[SourceService] TO remcert
--Create a remote service binding for the target service.
CREATE REMOTE SERVICE BINDING [Certificate_Binding_on_server]
TO SERVICE 'TargetService'
WITH USER = remcert,
ANONYMOUS=Off
--Create a route for the target service.
CREATE ROUTE [myRoute]
WITH
SERVICE_NAME = 'TargetService',
address = 'TCP://ServerTag:4022';
NotMasterKeyPassword parolasını için veritabanını belirtmelisiniz ana anahtar için bir yer tutucudur. PrivateKeyPassword bir parola .pvk özel anahtar dosyası için belirttiğiniz özel anahtarının sertifika oluşturma aracını kullanarak yertutucusudur. LoginPassword, yeni oluşturulan oturum açma parolasını için yer tutucudur.
ServerTag sunucudaki SQL Server örneği için SQL Server 2005 Service Broker'ı yapılandırma
Örnek ServerTag sunucudaki SQL Server Management Studio'yu kullanarak bağlanın.
Sorgu düzenleyicisinde aşağıdaki Transact-SQL deyimlerini çalıştırın: <a1>
--Configure the transport security.
USE MASTER
go
--Create a master key in the master database.
CREATE MASTER KEY ENCRYPTION BY password = 'MasterKeyPassword'
Go
--Create a certificate for transport security.
CREATE CERTIFICATE ctfTargetServerMaster
FROM FILE = 'c:\certificates\TargetServer.cer'
WITH PRIVATE KEY (FILE='c:\certificates\TargetServer.pvk',decryption by password='PrivateKeyPassword')
ACTIVE FOR BEGIN_DIALOG = ON
GO
--Create the login and the user to own a certificate.
CREATE LOGIN remcert WITH PASSWORD = 'LoginPassword'
GO
CREATE USER remcert FOR LOGIN remcert
GO
CREATE CERTIFICATE ctfSourceServerMaster
AUTHORIZATION remcert
FROM FILE = 'c:\certificates\SourceServer.cer'
ACTIVE FOR BEGIN_DIALOG = ON
GO
--Create a new endpoint for SQL Server 2005 Service Broker, and set the AUTHENTICATION option to use the ctfSourceServerMaster certificate.
CREATE ENDPOINT BrokerEndpoint
STATE = STARTED
AS TCP
(
LISTENER_PORT = 4022
)
FOR SERVICE_BROKER (AUTHENTICATION = CERTIFICATE ctfTargetServerMaster)
GO
--Grant the required permissions to the remcert login.
GRANT CONNECT TO remcert
GRANT CONNECT ON ENDPOINT::BrokerEndpoint to remcert
GO
--Create a new database for testing.
CREATE DATABASE TargetDB
GO
USE TargetDB
GO
--Configure the dialog security.
--Create a master key in the TargetDB database.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MasterKeyPassword'
--Create a certificate for the TargetDB database.
CREATE CERTIFICATE ctfDlgTargetServer
FROM FILE = 'c:\certificates\DlgTargetServer.cer'
WITH PRIVATE KEY
(FILE='c:\certificates\DlgTargetServer.pvk',decryption by password='PrivateKeyPassword')
ACTIVE FOR BEGIN_DIALOG = ON
GO
--Create a user for the remcert login that owns a certificate for the dialog security.
CREATE USER remcert for LOGIN remcert
GO
CREATE CERTIFICATE ctfDlgSourceServer
AUTHORIZATION remcert
FROM FILE = 'C:\certificates\DlgSourceServer.cer'
ACTIVE FOR BEGIN_DIALOG = ON
--Create a message type, a contract, a queue, and a service.
CREATE MESSAGE TYPE [mymsg] VALIDATION = NONE
CREATE CONTRACT [mycon] ([mymsg] SENT BY ANY)
CREATE QUEUE [myQueue]
CREATE SERVICE [TargetService] ON QUEUE [myQueue]([mycon])
GO
--Grant the send permission to the user.
GRANT SEND ON SERVICE::[TargetService] TO remcert
GO
--Create a remote service binding for the target service.
CREATE REMOTE SERVICE BINDING [Certificate_Binding_on_server]
TO SERVICE 'SourceService'
WITH USER = remcert,
ANONYMOUS=Off
--Create a route for the target service.
CREATE ROUTE [myRoute]
WITH
SERVICE_NAME = 'SourceService',
address = 'TCP://ServerSrc:4022';
SQL Server 2005 Service Broker uzak güvenlik sınama
Iki tane yapılandırıldıktan sonra örnek ServerSrc sunucuda bağlanmak ve SQL Server 2005 Service Broker hizmetini sınamak için aşağıdaki kodu çalıştırın: <a1>
USE SourceDB
SET NOCOUNT ON
DECLARE @conversationHandle uniqueidentifier
BEGIN TRANSACTION
-- Start dialog.
BEGIN DIALOG @conversationHandle
FROM SERVICE [SourceService]
TO SERVICE 'TargetService'
ON CONTRACT [mycon]
WITH ENCRYPTION = ON, LIFETIME = 600;
-- Send message.
SEND ON CONVERSATION @conversationHandle
MESSAGE TYPE [mymsg] (N'Hi, from '+@@ServerName)
COMMIT
Bu ifadeler çalıştırın, sonra ServerTag sunucu örneğinde bağlanmak ve sonra da aşağıdaki ifadeyi çalıştırın:
SELECT CONVERT(NVARCHAR(MAX),message_body) FROM myQueue
GO
Ö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:915852
(http://support.microsoft.com/kb/915852/en-us/
)
Bu makaleyi kullanmak için ne kadar kişisel çaba harcadınız?
Çok az
Az
Orta
Fazla
Çok fazla
Bu bilgiyi geliştirmemiz için nedenleri ve bu konuda neler yapabileceğimizi paylaşın
Teşekkürler! Görüşleriniz, destek içeriğimizi geliştirmemize yardımcı olmak için kullanılmaktadır. Diğer yardım seçenekleri için, lütfen Yardım ve Destek Giriş Sayfasını ziyaret edin.