Quintas da TI

O inicio ao Quintas da TI do mês de Junho foi com o tema SQL Server além do NNF apresentado por mim. Foi realizado a gravação da apresentação e está disponível para todos. Aproveito para agradecer a todos que participaram e principalmente aos idealizadores Thiago Guirotto, Eduardo Sena e Erick Albuquerque. Esse projeto está sendo um sucesso e contem sempre … Continue lendo »

Casos do Dia a Dia: Removendo um Disco Mount Point de um Cluster SQL Server

Olá Pessoal, Em um belo dia de sol, precisamos remover um disco que era mount Pouint de um cluster com SQL Server. Realizamos a remoção como se fosse um disco normal, conferimos que o disco não estava mais sendo utilizado, tiramos todas as dependências desse disco e finalmente retiramos o disco do cluster (botão direito [...]

Announcing SQLSaturday #341 Porto-wine Edition

I am extremely proud to announce that we are officially working on the SQLSaturday in the second biggest city in Portugal – Oporto. We are unofficially baptising our event as SQLSaturday Porto-wine Edition, since as everyone knows Porto is home…

SQL Saturday no Porto!



Depois de alguns anos em Portugal - mais precisamente Lisboa - onde foi feito o primeiro SQL Saturday fora da America do Norte, o SQL Saturday chega ao Porto no próximo dia 18 de Outubro!

O anúncio oficial foi feito a alguns dias e o site já está online, então não percam tempo para garantir o seu lugar!

http://www.sqlsaturday.com/341/

Nos vemos por lá...

Granulando o acesso ao SQL Server Agent!


Olá pessoal! Tudo certo? Espero que sim!

Hoje vou falar de algo que surgiu no SQL Server 2005, as regras de controle de acesso ao SQL Server Agent implementadas na base de dados MSDB, estas permitiram aos administradores um controle maior sobre quem pode visualizar os jobs, seus logs, executá-los etc.

Na prática...

1. Com um usuário sysadmin, criem um novo login chamado loginteste e não deem nenhuma permissão para ele, criem também um job qualquer com uma step que contenha alguma comando simples em T-SQL, chamem este job de TESTE_JOB. Acessem o SQL Server com este novo login e notem que o SQL Server Agent no Management Studio nem aparece:

2. Novamente com um usuário sysadmin entrem nas propriedades do login que criamos e agora, em User Mapping, selecionem a base de dados MSDB e na lista das roles da base, selecionem uma chamada SQLAgentReaderRole:

3. Agora, voltem a se logar na instância com o login loginteste, notem que agora o SQL Server Agent já aparece:

4. Se tentarem ver o histórico do job também será possível:

5. Agora, se vocês entrarem dentro do job e tentarem editar as steps existentes, notem que os botões para isso vão estar desativados com exceção do de visualização:

6. Se vocês tentarem executar o job, também não será possível:

7. Clicando na mensagem de erro em azul temos o seguinte:

8. Antes de falarmos em como fazer para que nosso usuário além de visualizar informações de determinado job consiga também executá-lo, voltem ao mapeamento de permissões dele e notem que a permissão SQLAgentUserRole foi marcada automaticamente:  

Mas por qual razão? Bom, a SQLAgentUserRole é a permissão mais fraca dentre as três existentes, desta forma, membros das outras permissões são automaticamente membros dela.

9. Finalmente vamos fazer com que nosso usuário consiga também executar os jobs. Entrem novamente com um usuário que seja sysadmin na instância, depois, nas propriedades do nosso login de teste, em User Mapping, selecionem a role SQLAgentOperatorRole

10. Agora, novamente com o login de teste que criamos executem o job e vejam que desta vez será possível:

11. É isso pessoal, isto pode ser muito útil quando vocês quiserem granular o acesso de alguém ao SQL Server Agent!  Espero ter ajudado de alguma forma! Um abraço!

Links de referência:

http://www.virtualpass.com.br/

Criando um Data Collector Set – Performance Monitor

Olá pessoal, Esse post é apenas para mostrar como importar o arquivo .xml gerado no PAL. Abra o Performance Monitor e navegue até a opção User Defined log abaixo, Data Collector Sets. Clique com botão direito em User Defined. Selecione a opções Create from a template (Recommended) e clique em next. Clique na opção Browse. […]

PAL – Performance Analysis of Logs

Olá pessoal, Alguém aqui ja ouviu falar do Performance Analysis of Logs (PAL)? Para os que ainda não conhecem, o PAL é uma ferramenta que permite analisar Performance Counters de diversas tecnologias Microsoft. A principal ideia é que você possa criar um coletor de dados no Performance Monitor coletar estatísticas do seu ambiente e depois […]

Data Mining com SQL Server 2014

Fala galera, Data Mining é uma área de pesquisa atrelada à Ciência da Computação, mais especificamente à Inteligência Artificial, com muita influência de Estatística e Matemática. No SQL Server existem alguns (9, pra ser exato) algoritmos implementados nativamente que permitem analisar e aplicar estas técnicas de Mineração de Dados. A idéia deste post é mostrar [...]

The post Data Mining com SQL Server 2014 appeared first on Think Think SQL.

ClearTrace – Agregando Traces

Olá pessoal, Ando um pouco afastado do blog ultimamente, mas hoje gostaria de deixar uma dica bem rápida, mas importante no dia-a-dia de um DBA. É muito comum no nosso trabalho analisar traces quando estamos trabalhando com performance tuning, porem o interessante de analisar o trace é ter possuir uma visão geral e agregada do […]

Como alterar a collation da minha instância?

Durante o meu dia de trabalho, tive a necessidade de alterar a collation de uma instância de SQL Server 2012. A causa era simples: Esta instância seria o DR de uma outra instância com uma collation diferente.

Um descuido na instalação pode gerar situações como esta, pois temos nomes de collation muito parecidos, como: "SQL_Latin1_General_CI_AS" e "Latin1_General_CI_AS"


Principais consequências em alterar a collation
Infelizmente, para alterar a collation de uma instância é necessário fazer rebuild da base de dados de sistema "master". Sim, a MASTER. E isso significa perder muita coisa.... como o os logins e o tracking das BDs montadas na instância (as BDs não são apagadas!).

Resumindo
  • Se a instância é nova e o "problema" foi descoberto a tempo, esta tarefa é relativamente simples. 
  • Se a instância já estiver bem consolidada, com logins, bases de dados, linked servers, etc... Teremos muito trabalho pela frente.
    • Se este for o seu caso, este link vai ajudar bastante na tarefa de guardar as definições da master.

Como faço para alterar a collation??

Temos duas opções:
  1. O referido rebuild da master.
  2. Reinstalar a instância.

Temos que medir o esforço e o tempo de indisponibilidade das duas opções, para fazer uma boa escolha...Isso varia dependendo da situação.

Aqui irei falar da opção 1 - O rebuild da master.

Basicamente o rebuild é uma tarefa simples. O seguinte comando deverá ser executado:
Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=<ID da instância> /SQLSYSADMINACCOUNTS=<Contas de dominio que serão Sysadmin separadas por virgula> [/SAPWD=<Password para a conta SA, se aplicável>] /SQLCOLLATION=<Nova Collation>

Exemplo:
Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS= DOMAIN\User1,DOMAIN\User2 /SAPWD=!37gh78ge /SQLCOLLATION=Latin1_General_CI_AS

Alguns factos importantes:

  • O comando deverá ser executado na console do Windows (cmd), na pasta que se encontram os binários de instalação do SQL Server.
  • O parâmetro "/INSTANCENAME" não é o nome da instância, e sim o seu ID.
    • Isso poderá ser descoberto ao executar o seguinte comando:
    • SELECT ISNULL(ServerProperty('InstanceName'), 'MSSQLSERVER') InstanceName
  • O serviço deverá estar offline.
  • Depois da execução do comando, o seguinte será mostrado, se o comando for bem sucedido:
    Microsoft (R) SQL Server 2012 11.00.2100.60
    Copyright (c) Microsoft Corporation.
    All rights reserved.
  • No caso de erro, uma mensagem será gerada, assim como um ficheiro com mais detalhes

É isso, espero ter ajudado!

Até a próxima... :)
Go to Top