Articles tagged with: script

Script – Relatório dos Últimos Backups

Olá,

Script para visualização dos últimos backups de banco de dados.

Baseado e adaptado do script: http://timradney.com/2014/02/17/how-to-check-for-last-sql-server-backup/

/***********************************************************

Script: Verifica backup
Descrição:
Retorna, para cada base de dados, as últimas datas para os backups FULL, Diferencial (Diff) e também retorna a data dos dois
últimos backups de log.
Compatibilidade: SQL Server 2005 e versões superiores

************************************************************/

SELECT
DISTINCT

@@servername as [Servidor],
a.Name AS [Banco de Dados] ,
CONVERT(SYSNAME, DATABASEPROPERTYEX(a.name, 'Recovery')) [Recovery Model] ,
COALESCE((SELECT CONVERT(VARCHAR(50), MAX(backup_finish_date), 121)
FROM msdb.dbo.backupset
WHERE database_name = a.name
AND type = 'D'
AND is_copy_only = '0'
), '-') AS 'Full' ,
COALESCE((SELECT CONVERT(VARCHAR(50), MAX(backup_finish_date), 121)
FROM msdb.dbo.backupset
WHERE database_name = a.name
AND type = 'I'
AND is_copy_only = '0'
), '-') AS 'Diferencial' ,
COALESCE((SELECT CONVERT(VARCHAR(20), MAX(backup_finish_date), 121)
FROM msdb.dbo.backupset
WHERE database_name = a.name
AND type = 'L'
), '-') AS 'Log (Último)' ,
COALESCE((SELECT CONVERT(VARCHAR(20), backup_finish_date, 120)
FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY backup_finish_date DESC ) AS 'rownum' ,
backup_finish_date
FROM msdb.dbo.backupset
WHERE database_name = a.name
AND type = 'L'
) withrownum
WHERE rownum = 2
), '-') AS 'Log (penúltimo)'
FROM sys.databases a
LEFT OUTER JOIN msdb.dbo.backupset b ON b.database_name = a.name
WHERE a.name <> 'TEMPDB'
GROUP BY a.Name

Identificando logins com permissões elevadas no SQL Server

Outro título: "sabes quem tem poder de fogo no teu servidor?"

Introdução

É uma informação crítica e vital caso você administre servidores de banco de dados  conhecer quem possui permissões elevadas.

O que defino aqui como login com permissão elevada é aquele que:

• Está incluído na role de servidor sysadmin;
• Está incluído na role de servidor securityadmin
• Possui a permissão de CONTROL SERVER;

O post traz um script básico com o intuito de identificar quem são eles:

Script

O script se divide em duas partes: a primeira analisa roles de servidor com permissões importantes (nesse caso, sysadmin e securityadmin).  A segunda analisa permissões de servidor (CONTROL SERVER, leia os motivos aqui). Ambas as partes ignoram logins desativados.

Compatibilidade do script: SQL Server 2005 ou superior.

 

Segue exemplo de resultado:

EvidenciaPermiss

Customização vai a gosto do freguês: filtrar certificados, outras roles que você pode considerar importante (dbcreator por exemplo), considerar também logins desabilitados…

Espero que você não tenha surpresas ao localizar algum login de modo inesperado e que o script ajude alguém. Mas se encontrar, espero que você resolva da melhor forma possível antes de ter algum problema chato por causa de falha na segurança.
[]’s

 

Sugestões de leitura

Roles do SQL Server: Sysadmin – http://renatomsiqueira.com/roles-do-sql-server-sysadmin/

Roles do SQL Server: Setupadmin e Securityadmin – http://renatomsiqueira.com/roles-do-sql-server-setupadmin-e-securityadmin/

[]’s

Script – Informações do Tamanho das Bases

Espaço em Disco Olá, O codigo a seguir tem a finalidade de capturar o tamanho atual das bases (levando em conta apenas os arquivos de dado). Uma ótima utilidade para o script é persistir essas informações em um repositório pra depois fazer outras análises (Capacity Plan, por exemplo), por isso adicionalmente, existe um campo de data na saída da variável. Segue script:

Exemplo de saída

: espacoBranco