Files
123123/ZA.CoreService.ESBCertificateManager/Database/04_EnsureDemoPath.sql
T

107 lines
3.2 KiB
Transact-SQL

/*
COMMENT: Stellt den Demo-Zertifikatspfad für DE-Test / ct-ZADBService sicher.
Kann allein gegen eine bestehende EsbZertifikatManager-DB laufen
(ohne Drop/Create). EnvironmentCode muss TEST sein (appsettings).
*/
USE [EsbZertifikatManager];
GO
SET NOCOUNT ON;
SET XACT_ABORT ON;
DECLARE @SonicContainerId [int];
DECLARE @TargetDirectory [nvarchar](500) =
N'\\dekun-painwbdet\e$\proalpha-inwb\test\Containers\proalpha-test.ct-ZADBService\certs';
DECLARE @TargetFileName [nvarchar](260) = N'server.p12';
SELECT @SonicContainerId = container.[SonicContainerId]
FROM [dbo].[SonicContainer] AS container
INNER JOIN [dbo].[SonicConnection] AS connection
ON connection.[SonicConnectionId] = container.[SonicConnectionId]
INNER JOIN [dbo].[Environment] AS environment
ON environment.[EnvironmentId] = connection.[EnvironmentId]
WHERE environment.[EnvironmentCode] = N'TEST'
AND connection.[ConnectionName] = N'DE-Test'
AND container.[ContainerName] = N'ct-ZADBService';
IF @SonicContainerId IS NULL
BEGIN
THROW 50010,
N'Demo-Pfad: Container ct-ZADBService / DE-Test / TEST nicht gefunden. Zuerst 03_Seed.sql ausführen.',
1;
END;
/* Alte Platzhalter am gleichen Container auf Demo-Pfad umbiegen */
UPDATE [dbo].[CertificateTarget]
SET
[TargetDirectory] = @TargetDirectory,
[TargetFileName] = @TargetFileName,
[BackupEnabled] = 1,
[BackupDirectoryName] = N'Backup',
[IsActive] = 1,
[ModifiedDateTime] = SYSUTCDATETIME(),
[ModifiedBy] = SUSER_SNAME()
WHERE [SonicContainerId] = @SonicContainerId
AND
(
[TargetFileName] IN (N'server.crt', N'server.p12')
OR [TargetDirectory] LIKE N'C:\ESB\Certificates%'
);
IF NOT EXISTS
(
SELECT 1
FROM [dbo].[CertificateTarget] AS target
WHERE target.[SonicContainerId] = @SonicContainerId
AND target.[TargetDirectory] = @TargetDirectory
AND target.[TargetFileName] = @TargetFileName
AND target.[IsActive] = 1
)
BEGIN
INSERT INTO [dbo].[CertificateTarget]
(
[SonicContainerId],
[TargetDirectory],
[TargetFileName],
[BackupEnabled],
[BackupDirectoryName],
[IsActive],
[CreationDateTime],
[CreatedBy]
)
VALUES
(
@SonicContainerId,
@TargetDirectory,
@TargetFileName,
1,
N'Backup',
1,
SYSUTCDATETIME(),
SUSER_SNAME()
);
END;
SELECT
target.[CertificateTargetId],
company.[CompanyCode],
environment.[EnvironmentCode],
connection.[ConnectionName],
container.[ContainerName],
target.[TargetDirectory],
target.[TargetFileName],
target.[IsActive]
FROM [dbo].[CertificateTarget] AS target
INNER JOIN [dbo].[SonicContainer] AS container
ON container.[SonicContainerId] = target.[SonicContainerId]
INNER JOIN [dbo].[SonicConnection] AS connection
ON connection.[SonicConnectionId] = container.[SonicConnectionId]
INNER JOIN [dbo].[Environment] AS environment
ON environment.[EnvironmentId] = connection.[EnvironmentId]
INNER JOIN [dbo].[Company] AS company
ON company.[CompanyId] = container.[CompanyId]
WHERE container.[SonicContainerId] = @SonicContainerId;
PRINT N'Demo-Pfad ist aktiv: \\dekun-painwbdet\e$\...\certs\server.p12';
GO