diff --git a/DELPHIX - create target db.sql b/DELPHIX - create target db.sql new file mode 100644 index 0000000..e3a123b --- /dev/null +++ b/DELPHIX - create target db.sql @@ -0,0 +1,133 @@ +/* +Server: samnb705db01.amavita.ch +Format: GCM +Business: TPPHAR +type: VALI +Version: 24.1.21007.00072 + +08.04.2024, TSC +*/ +USE master + +SET XACT_ABORT ON; +SET NOCOUNT ON; + +DECLARE @dbName NVARCHAR(255); +DECLARE @query_bkp NVARCHAR(MAX)=''; +DECLARE @query_rest NVARCHAR(MAX)=''; +DECLARE @query_perms NVARCHAR(MAX)=''; +DECLARE @dump NVARCHAR(255); +DECLARE @users TABLE (login VARCHAR(255) NOT NULL, + name VARCHAR(255) NOT NULL); +INSERT INTO @users ([login], + [name]) +VALUES + ('svc-delphix-masking','sql login'), + ('CENTRALINFRA\ua253440', 'Oliver'), + ('CENTRALINFRA\ua253450', 'Franck'), + ('CENTRALINFRA\ua210510', 'Wyn'); + +DECLARE @tplRight NVARCHAR(MAX) = N' +USE @dbName@_delphix +BEGIN TRY + CREATE USER [@login@] FOR LOGIN [@login@]; + ALTER ROLE [db_owner] ADD MEMBER [@login@] +END TRY +BEGIN CATCH + ALTER ROLE [db_owner] ADD MEMBER [@login@] +END CATCH +'; + +DECLARE csrDb CURSOR FAST_FORWARD READ_ONLY FOR +SELECT [d].[name] + FROM sys.databases d + WHERE LOWER([d].[name]) IN ( 'arizona', 'arizonarep', 'hcitools', 'arizonacust', 'activepos_read', 'activepos_write' ); + +OPEN csrDb; + +FETCH NEXT FROM csrDb + INTO @dbName; + +WHILE @@FETCH_STATUS = 0 +BEGIN + SET @dump = @dbName+'_dump'; + IF NOT EXISTS ( + SELECT 1 + FROM sys.[backup_devices] + WHERE name = @dump + ) + BEGIN + RAISERROR ('No dump device named %s exists', 16, 1, @dump); + END + ELSE + BEGIN + SET @query_bkp = @query_bkp + REPLACE(REPLACE(' +BACKUP DATABASE [@dbname@] TO [@dump@] WITH COPY_ONLY, NOFORMAT, NOINIT, NAME = N''@dbname@-Full Database Backup'', SKIP, NOREWIND, NOUNLOAD, STATS = 10; + ' + ,'@dbname@' + ,@dbName) + + ,'@dump@' + ,@dump + ); + + DECLARE @file_row VARCHAR(255); + DECLARE @file_log VARCHAR(255); + + SELECT @file_row = name + FROM sys.master_files F + WHERE DB_NAME([F].[database_id]) = @dbName + AND type_desc = 'ROWS' + + SELECT @file_log = name + FROM sys.master_files F + WHERE DB_NAME([F].[database_id]) = @dbName + AND type_desc = 'LOG' + + SET @query_rest = @query_rest +REPLACE(REPLACE(REPLACE(REPLACE(' +RESTORE DATABASE [@dbname@_delphix] FROM [@dump@] WITH FILE = 1, REPLACE, MOVE N''@file_row@'' TO N''F:\SQLDataBase\@dbname@_delphix.mdf'', MOVE N''@file_Log@'' TO N''G:\SQLDataBase\@dbname@_delphix_1.ldf'', NOUNLOAD, STATS = 5; + ' + ,'@dbname@' + ,@dbName) + + ,'@dump@' + ,@dump) + + ,'@file_Log@' + ,@file_log) + + ,'@file_row@' + ,@file_row + ); + + --permissions + SELECT @query_perms = @query_perms + REPLACE(REPLACE( + @tplRight + ,'@dbName@' + ,@dbName + ) + ,'@login@' + ,u.[login] + ) + FROM @users u + + FETCH NEXT FROM csrDb + INTO @dbName; + END +END + +CLOSE csrDb; +DEALLOCATE csrDb; + + +--PRINT @query_bkp; +--PRINT '--------------------------------' +--PRINT @query_rest +--PRINT '--------------------------------' +--PRINT @query_perms + +EXEC(@query_bkp) +EXEC(@query_rest) +EXEC(@query_perms) + + diff --git a/DELPHIX - give db_owner to dbi people.sql b/DELPHIX - give db_owner to dbi people.sql index 4dca9bf..1b9a7dc 100644 --- a/DELPHIX - give db_owner to dbi people.sql +++ b/DELPHIX - give db_owner to dbi people.sql @@ -51,7 +51,8 @@ DECLARE @users TABLE (login VARCHAR(255) NOT NULL, INSERT INTO @users ([login], [name]) VALUES ('CENTRALINFRA\ua253440', 'Oliver'), - ('CENTRALINFRA\ua253450', 'Franck'); + ('CENTRALINFRA\ua253450', 'Franck'), + ('CENTRALINFRA\ua210510', 'Wyn'); --#region create logins SELECT @q = @q + REPLACE(@tplLogin, '@login@', [u].[login])