none
Backup com Senha: Tenho esta Tarefa que funciona bem, preciso colocar senha backup RRS feed

  • Pergunta

  • CREATE PROCEDURE dbo.uSP_BackupSistema
       (
       @Nome_Banco VARCHAR(255),

       @Senha VARCHAR(100),
       @Mensagem VARCHAR(1000) Output

          )
      
    AS
      
    BEGIN
       SET @Mensagem = ''

       IF NOT EXISTS(SELECT * FROM Master..SysDatabases WHERE NAME=@Nome_Banco)
          BEGIN
             SET @Mensagem = @Nome_Banco + ' não encontrado!'
             PRINT @Mensagem
             RETURN
          END

       DECLARE @Pasta VARCHAR(1000),
               @Arquivo VARCHAR(1000),
               @Dia VARCHAR(10),
               @Mes VARCHAR(10),
               @Ano VARCHAR(10),
               @Hora VARCHAR(10),
               @Minuto VARCHAR(10),
               @Segundo VARCHAR(10),
               @DataHora VARCHAR(100),
               @ArquivoBKP VARCHAR(1000),
               @ArquivoLOG VARCHAR(1000)

       SET @Dia = DATEPART(dd, GETDATE())
       IF LEN(RTRIM(@Dia)) = 1
          SET @Dia = '0' + @Dia

       SET @Mes = DATEPART(mm, GETDATE())
       IF LEN(RTRIM(@Mes)) = 1
          SET @Mes = '0' + @Mes

       SET @Ano = DATEPART(yy, GETDATE())
       IF LEN(RTRIM(@Ano)) = 2
          SET @Ano = '20' + @Ano

       SET @Hora    = DATEPART(hh, GETDATE())
       IF LEN(RTRIM(@Hora)) = 1
          SET @Hora = '0' + @Hora

       SET @Minuto  = DATEPART(mi, GETDATE())
       IF LEN(RTRIM(@Minuto)) = 1
          SET @Minuto = '0' + @Minuto

       SET @Segundo = DATEPART(ss, GETDATE())
       IF LEN(RTRIM(@Segundo)) = 1
          SET @Segundo = '0' + @Segundo

       SELECT @Pasta = 'C:\BACKUP\'

       SET @Arquivo    = @Nome_Banco + '_'
       SET @DataHora   = @Dia + @Mes + @Ano + '_' + @Hora + @Minuto + @Segundo
       SET @ArquivoBKP = @Pasta + @Arquivo + @DataHora + '.Bak'
       SET @ArquivoLOG = @Pasta + @Arquivo + @DataHora + '_LOG' + '.Bak'

       DECLARE @ArqLog VARCHAR(255),
               @ArqDat VARCHAR(255)

       SET @ArqLog = @Nome_Banco + '_LOG'
       SET @ArqDat = @Nome_Banco + '_DATA'

       PRINT 'Arquivo de Dados...: ' + @ArqDat
       PRINT 'Arquivo de LOG.....: ' + @ArqLog

       DECLARE @Tamanho_Arquivo Decimal(18,2)
       PRINT 'BACKUP LOG ' + @Nome_Banco + ' WITH TRUNCATE_ONLY'
       EXECUTE ('BACKUP LOG ' + @Nome_Banco + ' WITH TRUNCATE_ONLY')
      
       IF @@Error <> 0
          BEGIN
             SET @Mensagem = 'Erro ao truncar o LOG!'
             PRINT @Mensagem
             RETURN
          END
      
       PRINT 'BACKUP DATABASE ' + @Nome_Banco + ' TO Disk = ' + '''' + @ArquivoBKP + '''' + ' WITH SKIP, NOUNLOAD'
       EXECUTE ('BACKUP DATABASE ' + @Nome_Banco + ' TO Disk = ' + '''' + @ArquivoBKP + '''' + ' WITH SKIP, NOUNLOAD')
       IF @@Error <> 0
          BEGIN
             SET @Mensagem = 'Erro ao executar Backup dos Dados!'
             PRINT @Mensagem
             RETURN
          END
      
       DBCC CHECKDB (@Nome_Banco)

       DBCC SHRINKFILE (@ArqLog, 1)
      
       SET @Mensagem = 'Backup executadao com sucesso !'
    END


     Pessoal, preciso colocar a senha nesta funcao de BACKUP, Alguem pode me Ajudar..?????

    Aguardo...

     

    quarta-feira, 7 de novembro de 2007 10:01

Respostas

  • Obrigado ao Junior e ao Marcelo pelas Repostas...

     

    Pra finalizar é o seguinte:

    Fiz estes 02 comandos para Gravar e Restaurar o Backup com senha e deu certo.

     

    'Comando para Gravar com senha.

    BACKUP DATABASE [LUIZ] TO  DISK = N'C:\BACKUP\LUIZ.bak'
    WITH NOFORMAT, NOINIT,
    NAME = N'LUIZ-Full Database Backup',
    PASSWORD = '123456',
    SKIP, NOREWIND, NOUNLOAD,  STATS = 10
    GO

     

    'Comando para Restaurar com senha..
    RESTORE DATABASE [LUIZ] FROM  DISK = N'C:\BACKUP\LUIZ.bak'
    WITH  FILE = 1,  NOUNLOAD,
    PASSWORD = '123456',
    STATS = 10
    GO

     

    Executei os 2 comandos com sucesso......

    Minha ultima pergunta é Este meu comando de BACKUP esta COMPLETO ou seja

    é um BACKUP SEGURO.???

     

    sexta-feira, 9 de novembro de 2007 13:00
  • +- veja os parametros noinit, noformat isso indica para o backup dar um append no arquivo. veja se e isso mesmo pois um arquivo de backup com append vc. deve especificar o file para o restore ou seja dentro do arquivo de backup vc. vai ter varios outros backups como se fosse um diretorio, agora se nao quizer fazer um append ou seja queira reescrever tire o noformat, e troque o noinit por init

     

    Abs/;

     

    sexta-feira, 9 de novembro de 2007 13:32

Todas as Respostas

  • Luiz,

     

    Você quer inserir uma senha no arquivo de backup ?

    quinta-feira, 8 de novembro de 2007 11:25
    Moderador
  • Junior, Quero passar como parametro(conforme variavel que esta no escopo) uma senha para o backup do dia e gravar este backup com a senha passada por parametro. (para somente com esta senha fazer a restore do backup.)

    Aguardo...a sua ajuda se possível!!!!

     

     

    quinta-feira, 8 de novembro de 2007 15:36
  • Luiz,

     

    Você deverá especificar a opção password no seu comando de backup, e concatenar com o parâmetro @Senha.

     

    Ou se preferir o próprio comando de backup possui uma váriavel para password, sendo que esta senha deverá ser definida seguinte uma estrutura de senhas fortes: números, letras maiusculas e minusculas, caracteres especiais...

     

    Procure mais informações no books on-line do SQL Server, com certeza poderá encontrar mais exemplos.

     

     

    quinta-feira, 8 de novembro de 2007 16:23
    Moderador
  • Luiz,

     

    Veja se este exemplo poderá te ajudar:

     

    Code Block

    Declare @Comando VarChar(500),

    @Senha VarChar(10)

    Set @Senha='P@ssw0rd1'

     

    Set @Comando='BACKUP DATABASE AdventureWorks

    TO DISK = ''C:\MSSQL\BACKUP\AdventureWorks.Bak''

    WITH FORMAT,

    NAME = ''Full Backup of AdventureWorks'',

    PASSWORD='+@Senha

     

    Print @comando

     

     

    quinta-feira, 8 de novembro de 2007 16:26
    Moderador
  • Junior, Bom dia...é o seguinte tentei executar seu comando no Manag. Studio Express, mas nao resultou em nada....

    usei uma new query para executar o comando..

     

    sexta-feira, 9 de novembro de 2007 10:26
  • e que faltou o exec

     

    Declare @Comando VarChar(500),

    @Senha VarChar(10)

    Set @Senha='P@ssw0rd1'

     

    Set @Comando='BACKUP DATABASE AdventureWorks

    TO DISK = ''C:\MSSQL\BACKUP\AdventureWorks.Bak''

    WITH FORMAT,

    NAME = ''Full Backup of AdventureWorks'',

    PASSWORD='+@Senha

     

    EXEC (@comando)

     

    Abs;

     

    sexta-feira, 9 de novembro de 2007 11:12
  • Obrigado ao Junior e ao Marcelo pelas Repostas...

     

    Pra finalizar é o seguinte:

    Fiz estes 02 comandos para Gravar e Restaurar o Backup com senha e deu certo.

     

    'Comando para Gravar com senha.

    BACKUP DATABASE [LUIZ] TO  DISK = N'C:\BACKUP\LUIZ.bak'
    WITH NOFORMAT, NOINIT,
    NAME = N'LUIZ-Full Database Backup',
    PASSWORD = '123456',
    SKIP, NOREWIND, NOUNLOAD,  STATS = 10
    GO

     

    'Comando para Restaurar com senha..
    RESTORE DATABASE [LUIZ] FROM  DISK = N'C:\BACKUP\LUIZ.bak'
    WITH  FILE = 1,  NOUNLOAD,
    PASSWORD = '123456',
    STATS = 10
    GO

     

    Executei os 2 comandos com sucesso......

    Minha ultima pergunta é Este meu comando de BACKUP esta COMPLETO ou seja

    é um BACKUP SEGURO.???

     

    sexta-feira, 9 de novembro de 2007 13:00
  • +- veja os parametros noinit, noformat isso indica para o backup dar um append no arquivo. veja se e isso mesmo pois um arquivo de backup com append vc. deve especificar o file para o restore ou seja dentro do arquivo de backup vc. vai ter varios outros backups como se fosse um diretorio, agora se nao quizer fazer um append ou seja queira reescrever tire o noformat, e troque o noinit por init

     

    Abs/;

     

    sexta-feira, 9 de novembro de 2007 13:32