Service Broker 2 bases 2/4 : mise en place de la couche de dialogue sécurisée
/*
Mise en place des objects serveurs pour
la couche de dialogue sécurisée...
*/
:setvar serv1 "READY-12-01"
:setvar serv2 "READY-12-02"
:connect $(serv1)
--------------------------------------------------------------------------
-- Etape 2.1 -- sur serv1
--------------------------------------------------------------------------
USE master;
GO
--on crée une base
DROP DATABASE [Test SB]
GO
CREATE DATABASE [Test SB];
GO
USE [Test SB];
GO
--on crée la master key
CREATE MASTER KEY
ENCRYPTION BY PASSWORD = 'A&strong#0ne!';
--on crée un certificat pour sécuriser le dialogue
CREATE CERTIFICATE SecuriteDialogue1
WITH SUBJECT = 'Certificat pour le service Inventaire.',
START_DATE = '06/01/2005'
--ACTIVE FOR BEGIN_DIALOG = ON
;
GO
--on exporte le certificat et on le copie sur le serveur distant
BACKUP CERTIFICATE SecuriteDialogue1
TO FILE = '\\$(serv1)\Backups\Dialogue-$(serv1).cer';
GO
:!! copy \\$(serv1)\Backups\Dialogue-$(serv1).cer \\$(serv2)\Backups
--on crée un utilisateur pour lui
-- assigner le certificat venant de la base distante
CREATE USER UtilDiagDistant1
WITHOUT LOGIN;
GO
:connect $(serv2)
--------------------------------------------------------------------------
-- Etape 2.2 -- sur serv2
--------------------------------------------------------------------------
USE master;
GO
--on crée une base
DROP DATABASE [Test SB]
GO
CREATE DATABASE [Test SB];
GO
USE [Test SB];
GO
--on crée la master key
CREATE MASTER KEY
ENCRYPTION BY PASSWORD = 'A&strong#0ne!';
--on crée un certificat pour sécuriser le dialogue
CREATE CERTIFICATE SecuriteDialogue2
WITH SUBJECT = 'Certificat pour le service Inventaire.',
START_DATE = '06/01/2005'
-- ACTIVE FOR BEGIN_DIALOG = ON
;
GO
--on exporte le certificat et on le copie sur le serveur distant
BACKUP CERTIFICATE SecuriteDialogue2
TO FILE = '\\$(serv2)\Backups\Dialogue-$(serv2).cer';
GO
:!! copy \\$(serv2)\Backups\Dialogue-$(serv2).cer \\$(serv1)\Backups
--on crée un utilisateur pour lui
-- assigner le certificat venant de la base distante
CREATE USER UtilDiagDistant2
WITHOUT LOGIN;
GO
--on crée un certificat à partir du fichier reçu
CREATE CERTIFICATE SecuriteDialogue1
AUTHORIZATION UtilDiagDistant2
FROM FILE = '\\$(serv2)\Backups\Dialogue-$(serv1).cer';
--on vérifie la création
SELECT * FROM sys.certificates WHERE LEFT(name,2) <>'##';
GO
:connect $(serv1)
--------------------------------------------------------------------------
-- Etape 2.3 -- sur serv1
--------------------------------------------------------------------------
USE [Test SB];
GO
--on crée un certificat à partir du fichier reçu
CREATE CERTIFICATE SecuriteDialogue2
AUTHORIZATION UtilDiagDistant1
FROM FILE = '\\$(serv1)\Backups\Dialogue-$(serv2).cer';
--on vérifie la création
SELECT * FROM sys.certificates WHERE LEFT(name,2) <>'##';
GO