118 lines
5.6 KiB
Transact-SQL
118 lines
5.6 KiB
Transact-SQL
USE [HCITools]
|
||
GO
|
||
|
||
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dba].[Backup_all_principal_permission]') AND type in (N'P', N'PC'))
|
||
DROP PROCEDURE [dba].[Backup_all_principal_permission]
|
||
GO
|
||
|
||
USE [HCITools]
|
||
GO
|
||
/****** Object: StoredProcedure [dbo].[bkp_Dump] Script Date: 11/18/2016 11:13:32 ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
|
||
CREATE PROCEDURE [dba].[Backup_all_principal_permission]
|
||
@in_debug int = null
|
||
AS
|
||
/*=============================================================================
|
||
|
||
Explication du traitement realise par la SP
|
||
-------------------------------------------
|
||
Cette SP sert à créer les backups des sécurités pour toutes les bases.
|
||
|
||
Contexte d'utilisation
|
||
----------------------
|
||
Cette SP doit être appélée avant les mises à jour de nouvelle version.
|
||
|
||
Parametres
|
||
----------
|
||
@in_debug : Si 1 alors on fait un print des commandes de backup
|
||
|
||
Creation : 18.11.16 / RTC
|
||
|
||
=============================================================================*/
|
||
|
||
set nocount on;
|
||
|
||
declare @result_sp int,
|
||
@errno int,
|
||
@errmsg varchar(255)
|
||
|
||
/*------------------- Declaration des variables --------------------*/
|
||
|
||
declare @name varchar (255),
|
||
@cmd varchar (8000),
|
||
@xml XML,
|
||
@delimiter VARCHAR(1),
|
||
@param_group_counter_list NVARCHAR(3000),
|
||
@label datetime
|
||
|
||
select @param_group_counter_list = HCIP_value
|
||
from HCITools.dbo.HCI_PARAMS
|
||
where HCIP_key = 'BKP_NOT_DB'
|
||
set @delimiter = ','
|
||
set @xml = CAST(('<X>'+REPLACE(@param_group_counter_list, @delimiter, '</X><X>')+'</X>') AS XML)
|
||
|
||
declare c_databases cursor local forward_only static for
|
||
select name
|
||
from sys.databases
|
||
where LOWER(name) not in (SELECT C.value('.', 'varchar(3000)') AS value FROM @xml.nodes('X') AS X(C))
|
||
AND state = 0
|
||
order by name
|
||
;
|
||
|
||
/*------------ Affectation des parametres aux variables ------------*/
|
||
|
||
select @errno = 0
|
||
;
|
||
SET @errmsg = ''
|
||
;
|
||
|
||
set @label = getdate()
|
||
;
|
||
|
||
/*-------------------------- Traitement ---------------------------*/
|
||
|
||
open c_databases
|
||
;
|
||
FETCH NEXT FROM c_databases
|
||
into @name
|
||
;
|
||
|
||
while @@fetch_status = 0
|
||
begin
|
||
/* Backup */
|
||
|
||
|
||
begin try
|
||
|
||
EXECUTE [HCITools].[dba].[Backup_principal_permission] @name ,@label ,@in_debug
|
||
|
||
end try
|
||
begin catch
|
||
|
||
select @errmsg = @errmsg + 'Backup permissions failed : ' + @name + ' ' + ERROR_MESSAGE() + CHAR(13)
|
||
;
|
||
|
||
SET @errno = @errno + 1
|
||
;
|
||
end catch
|
||
;
|
||
FETCH NEXT FROM c_databases
|
||
into @name
|
||
;
|
||
end
|
||
;
|
||
close c_databases
|
||
;
|
||
deallocate c_databases
|
||
;
|
||
|
||
/*------------------ Retour au programme appelant -----------------*/
|
||
|
||
return(@@error);
|
||
|
||
|