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