/* 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