352 lines
8.4 KiB
Transact-SQL
352 lines
8.4 KiB
Transact-SQL
/*
|
||
DATABASE: [EsbZertifikatManager]
|
||
OBJECTNAME: Seed
|
||
ACTION: INSERT
|
||
IDX: 002
|
||
DATE: 2026-07-29
|
||
USER: CUR
|
||
COMMENT: KOMPLETTE Seed-Datei (alles in einem Lauf):
|
||
- Company: DE, PL, AT
|
||
- Environment: TEST2, TEST, PROD
|
||
- SonicConnection: DE-Test (TEST)
|
||
- SonicContainer: ct-ZADBService
|
||
- CertificateTarget: Platzhalter-Pfad
|
||
Keine Credentials (Always Encrypted / Setup-Wizard).
|
||
Voraussetzung: 00_DropExisting, 01_CreateDatabase, 02_CreateSchema,
|
||
AlwaysEncrypted-Zertifikat importiert (Install-Certificate.ps1).
|
||
*/
|
||
USE [EsbZertifikatManager];
|
||
GO
|
||
|
||
SET ANSI_NULLS ON;
|
||
GO
|
||
|
||
SET QUOTED_IDENTIFIER ON;
|
||
GO
|
||
|
||
/* -------------------------------------------------------------------------- */
|
||
/* Company */
|
||
/* -------------------------------------------------------------------------- */
|
||
|
||
IF NOT EXISTS
|
||
(
|
||
SELECT 1
|
||
FROM [dbo].[Company] AS company
|
||
WHERE company.[CompanyCode] = N'DE'
|
||
)
|
||
BEGIN
|
||
INSERT INTO [dbo].[Company]
|
||
(
|
||
[CompanyCode],
|
||
[CompanyName],
|
||
[IsActive],
|
||
[CreationDateTime],
|
||
[CreatedBy]
|
||
)
|
||
VALUES
|
||
(N'DE', N'ZIEHL-ABEGG Deutschland', 1, SYSUTCDATETIME(), SUSER_SNAME());
|
||
END;
|
||
GO
|
||
|
||
IF NOT EXISTS
|
||
(
|
||
SELECT 1
|
||
FROM [dbo].[Company] AS company
|
||
WHERE company.[CompanyCode] = N'PL'
|
||
)
|
||
BEGIN
|
||
INSERT INTO [dbo].[Company]
|
||
(
|
||
[CompanyCode],
|
||
[CompanyName],
|
||
[IsActive],
|
||
[CreationDateTime],
|
||
[CreatedBy]
|
||
)
|
||
VALUES
|
||
(N'PL', N'ZIEHL-ABEGG Polen', 1, SYSUTCDATETIME(), SUSER_SNAME());
|
||
END;
|
||
GO
|
||
|
||
IF NOT EXISTS
|
||
(
|
||
SELECT 1
|
||
FROM [dbo].[Company] AS company
|
||
WHERE company.[CompanyCode] = N'AT'
|
||
)
|
||
BEGIN
|
||
INSERT INTO [dbo].[Company]
|
||
(
|
||
[CompanyCode],
|
||
[CompanyName],
|
||
[IsActive],
|
||
[CreationDateTime],
|
||
[CreatedBy]
|
||
)
|
||
VALUES
|
||
(N'AT', N'ZIEHL-ABEGG Oesterreich', 1, SYSUTCDATETIME(), SUSER_SNAME());
|
||
END;
|
||
GO
|
||
|
||
/* -------------------------------------------------------------------------- */
|
||
/* Environment */
|
||
/* -------------------------------------------------------------------------- */
|
||
|
||
IF NOT EXISTS
|
||
(
|
||
SELECT 1
|
||
FROM [dbo].[Environment] AS environment
|
||
WHERE environment.[EnvironmentCode] = N'TEST2'
|
||
)
|
||
BEGIN
|
||
INSERT INTO [dbo].[Environment]
|
||
(
|
||
[EnvironmentCode],
|
||
[EnvironmentName],
|
||
[SortOrder],
|
||
[IsActive],
|
||
[CreationDateTime],
|
||
[CreatedBy]
|
||
)
|
||
VALUES
|
||
(N'TEST2', N'Test 2', 1, 1, SYSUTCDATETIME(), SUSER_SNAME());
|
||
END;
|
||
GO
|
||
|
||
IF NOT EXISTS
|
||
(
|
||
SELECT 1
|
||
FROM [dbo].[Environment] AS environment
|
||
WHERE environment.[EnvironmentCode] = N'TEST'
|
||
)
|
||
BEGIN
|
||
INSERT INTO [dbo].[Environment]
|
||
(
|
||
[EnvironmentCode],
|
||
[EnvironmentName],
|
||
[SortOrder],
|
||
[IsActive],
|
||
[CreationDateTime],
|
||
[CreatedBy]
|
||
)
|
||
VALUES
|
||
(N'TEST', N'Test', 2, 1, SYSUTCDATETIME(), SUSER_SNAME());
|
||
END;
|
||
GO
|
||
|
||
IF NOT EXISTS
|
||
(
|
||
SELECT 1
|
||
FROM [dbo].[Environment] AS environment
|
||
WHERE environment.[EnvironmentCode] = N'PROD'
|
||
)
|
||
BEGIN
|
||
INSERT INTO [dbo].[Environment]
|
||
(
|
||
[EnvironmentCode],
|
||
[EnvironmentName],
|
||
[SortOrder],
|
||
[IsActive],
|
||
[CreationDateTime],
|
||
[CreatedBy]
|
||
)
|
||
VALUES
|
||
(N'PROD', N'Production', 3, 1, SYSUTCDATETIME(), SUSER_SNAME());
|
||
END;
|
||
GO
|
||
|
||
/* -------------------------------------------------------------------------- */
|
||
/* TEST-System: DE-Test + ct-ZADBService + CertificateTarget */
|
||
/* -------------------------------------------------------------------------- */
|
||
|
||
DECLARE @EnvironmentIdTest [int];
|
||
DECLARE @CompanyIdDe [int];
|
||
DECLARE @SonicConnectionIdDeTest [int];
|
||
DECLARE @SonicContainerId [int];
|
||
|
||
SELECT @EnvironmentIdTest = environment.[EnvironmentId]
|
||
FROM [dbo].[Environment] AS environment
|
||
WHERE environment.[EnvironmentCode] = N'TEST';
|
||
|
||
SELECT @CompanyIdDe = company.[CompanyId]
|
||
FROM [dbo].[Company] AS company
|
||
WHERE company.[CompanyCode] = N'DE';
|
||
|
||
IF @EnvironmentIdTest IS NULL
|
||
OR @CompanyIdDe IS NULL
|
||
BEGIN
|
||
THROW 50002,
|
||
N'Seed unvollstaendig: Environment TEST oder Company DE fehlt.',
|
||
1;
|
||
END;
|
||
|
||
IF NOT EXISTS
|
||
(
|
||
SELECT 1
|
||
FROM [dbo].[SonicConnection] AS connection
|
||
WHERE connection.[ConnectionName] = N'DE-Test'
|
||
)
|
||
BEGIN
|
||
INSERT INTO [dbo].[SonicConnection]
|
||
(
|
||
[EnvironmentId],
|
||
[ConnectionName],
|
||
[ManagementHost],
|
||
[ManagementPort],
|
||
[DomainName],
|
||
[ConnectionProtocol],
|
||
[IsActive],
|
||
[CreationDateTime],
|
||
[CreatedBy]
|
||
)
|
||
VALUES
|
||
(
|
||
@EnvironmentIdTest,
|
||
N'DE-Test',
|
||
N'dekun-painwbdet',
|
||
13070,
|
||
N'proalpha-test',
|
||
N'tcp',
|
||
1,
|
||
SYSUTCDATETIME(),
|
||
SUSER_SNAME()
|
||
);
|
||
END;
|
||
|
||
SELECT @SonicConnectionIdDeTest = connection.[SonicConnectionId]
|
||
FROM [dbo].[SonicConnection] AS connection
|
||
WHERE connection.[ConnectionName] = N'DE-Test';
|
||
|
||
IF @SonicConnectionIdDeTest IS NULL
|
||
BEGIN
|
||
THROW 50003,
|
||
N'Seed fehlgeschlagen: SonicConnection DE-Test nicht gefunden.',
|
||
1;
|
||
END;
|
||
|
||
IF NOT EXISTS
|
||
(
|
||
SELECT 1
|
||
FROM [dbo].[SonicContainer] AS container
|
||
WHERE container.[SonicConnectionId] = @SonicConnectionIdDeTest
|
||
AND container.[ContainerName] = N'ct-ZADBService'
|
||
)
|
||
BEGIN
|
||
INSERT INTO [dbo].[SonicContainer]
|
||
(
|
||
[CompanyId],
|
||
[SonicConnectionId],
|
||
[ContainerName],
|
||
[ContainerDisplayName],
|
||
[RestartTimeoutSeconds],
|
||
[IsActive],
|
||
[CreationDateTime],
|
||
[CreatedBy]
|
||
)
|
||
VALUES
|
||
(
|
||
@CompanyIdDe,
|
||
@SonicConnectionIdDeTest,
|
||
N'ct-ZADBService',
|
||
N'ZADBService',
|
||
180,
|
||
1,
|
||
SYSUTCDATETIME(),
|
||
SUSER_SNAME()
|
||
);
|
||
END;
|
||
|
||
SELECT @SonicContainerId = container.[SonicContainerId]
|
||
FROM [dbo].[SonicContainer] AS container
|
||
WHERE container.[SonicConnectionId] = @SonicConnectionIdDeTest
|
||
AND container.[ContainerName] = N'ct-ZADBService';
|
||
|
||
IF @SonicContainerId IS NULL
|
||
BEGIN
|
||
THROW 50004,
|
||
N'Seed fehlgeschlagen: SonicContainer ct-ZADBService nicht gefunden.',
|
||
1;
|
||
END;
|
||
|
||
/* Demo-Pfad für Zertifikat-Austausch (UNC server.p12) – immer sicherstellen */
|
||
DECLARE @DemoDirectory [nvarchar](500) =
|
||
N'\\dekun-painwbdet\e$\proalpha-inwb\test\Containers\proalpha-test.ct-ZADBService\certs';
|
||
DECLARE @DemoFileName [nvarchar](260) = N'server.p12';
|
||
|
||
UPDATE [dbo].[CertificateTarget]
|
||
SET
|
||
[TargetDirectory] = @DemoDirectory,
|
||
[TargetFileName] = @DemoFileName,
|
||
[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] = @DemoDirectory
|
||
AND target.[TargetFileName] = @DemoFileName
|
||
AND target.[IsActive] = 1
|
||
)
|
||
BEGIN
|
||
INSERT INTO [dbo].[CertificateTarget]
|
||
(
|
||
[SonicContainerId],
|
||
[TargetDirectory],
|
||
[TargetFileName],
|
||
[BackupEnabled],
|
||
[BackupDirectoryName],
|
||
[IsActive],
|
||
[CreationDateTime],
|
||
[CreatedBy]
|
||
)
|
||
VALUES
|
||
(
|
||
@SonicContainerId,
|
||
@DemoDirectory,
|
||
@DemoFileName,
|
||
1,
|
||
N'Backup',
|
||
1,
|
||
SYSUTCDATETIME(),
|
||
SUSER_SNAME()
|
||
);
|
||
END;
|
||
GO
|
||
|
||
/* Kontrolle */
|
||
SELECT
|
||
company.[CompanyCode],
|
||
environment.[EnvironmentCode],
|
||
connection.[ConnectionName],
|
||
connection.[ManagementHost],
|
||
connection.[ManagementPort],
|
||
connection.[DomainName],
|
||
container.[ContainerName],
|
||
target.[TargetDirectory],
|
||
target.[TargetFileName]
|
||
FROM [dbo].[SonicConnection] AS connection
|
||
INNER JOIN [dbo].[Environment] AS environment
|
||
ON environment.[EnvironmentId] = connection.[EnvironmentId]
|
||
INNER JOIN [dbo].[SonicContainer] AS container
|
||
ON container.[SonicConnectionId] = connection.[SonicConnectionId]
|
||
INNER JOIN [dbo].[Company] AS company
|
||
ON company.[CompanyId] = container.[CompanyId]
|
||
LEFT JOIN [dbo].[CertificateTarget] AS target
|
||
ON target.[SonicContainerId] = container.[SonicContainerId]
|
||
ORDER BY
|
||
environment.[SortOrder],
|
||
company.[CompanyCode],
|
||
connection.[ConnectionName];
|
||
GO
|