26 agosto, 2010

Se tornado sysadmin em servidor SQL Server/Express local (revisado)

Pouco mais de 1 mês atrás eu postei aqui no blog uma dica sobre como dar reset na senha de “sa” no SQL Express, um assunto completamente diferente dos temas que costumo abordar normalmente. Fiz aquele post principalmente para guardar a dica, caso fosse necessária novamente no futuro. O que eu não esperava era que ela seria tão necessária: Desde quando postei até agora eu já utilizei ou indiquei aquele post 7 vezes aqui no serviço.

Microsoft SQL Server

Esse assunto se tornou importante aqui devido ao fato de que agora os computadores de novos funcionarios não serão mais formatados, a não ser que a instalação anterior esteja com problemas. Como tivemos uma onda de contratações recentemente, vários computadores que estavam guardados foram disponibilizados para os novos desenvolvedores e então o problema de tornou latente.

Isso me fez ver também que meu post anterior poderia ter seu passo a passo melhorado, pois nem todos os casos são iguais e nem todos os detalhes estavam bem claros. Por isso eu decidi escrever um novo post mais claro e detalhado para ficar mais fácil para as próximas pessoas que precisarem dessa dica.

Quando o SQL Server ou SQL Express é instalado em um computador junto ou por algum outro aplicativo (Visual Studio, Web Platform Installer), o grupo de administradores local da máquina não é adicionado automáticamente ao grupo de administradores do banco de dados. Então, quando um computador muda de dono, o novo dono não consegue ter acesso admin no próprio SQL, mesmo sendo administrador local, pois apenas o usuário anterior e o “sa” estão no grupo de administradores do SQL.

O SQL e o SQL Express têm um modo de execução chamada “Single User” que serve justamente para realizar reparos na instalação. Quando o SQL está rodando em modo “Single User”, todos os administradores locais são incluídos temporáriamente como administradores do banco de dados, mesmo que ele não esteja configurado assim. Isso torna possível conectar no banco e fazer as “correções” necessárias usando o usuário logado atualmente no computador.

Abaixo tem um passo a passo para realizar a correção e reassumir controle sobre o banco de dados.

  1. Obtenha o nome do serviço da instância do SQL que você deseja reparar. O serviço do SQL Server custuma se chamar MSSQLSERVER e o do SQL Express costuma se chamar MSSQL$SQLEXPRESS. Se você não tiver certeza, pode verificar o nome do serviço indo em “Painel de Controle > Ferramentas Administrativas > Serviços” e dando um duplo clique no serviço desejado você verá o nome dele:
    Gerenciador de Serviços do Windows, com o serviço "SQL Server (SQLEXPRESS)" selecionado. Janela de propriedades do serviço "SQL Server (SQLEXPRESS)", mostrando o nome do serviço, que nesse caso é "MSSQL$SQLEXPRESS".
  2. Abra um prompt de comando em modo administrativo (“Run as Administrator” ou “Executar como Administrador”)
    Menu Iniciar, mostrando a opção "Executar como administrador" do programa "Prompt de Comando" Prompt de Comando aberto, mostrando que está sendo executado como Administrador
  3. Pare o serviço do SQL desejado executando o seguinte comando:
    NET STOP NomeDoServicoPasso1

    No meu caso, o nome do serviço seria MSSQL$SQLEXPRESS.


  4. Reinicie o serviço do SQL em modo Single User com o seguinte comando:
    NET START NomeDoServicoPasso1 /m

    A partir de agora só é possível conectar nesse banco de dados com o usuário atual.


  5. Conecte no banco de dados utilizando o SQL Server Management Studio, mas executando como Administrador do mesmo modo que foi feito com o prompt de comando. Isso é necessário pois o SQL está executando em modo Single User, então ele só aceitará conexões do usuário que iniciou o serviço.


    Menu Iniciar, mostrando o programa "SQL Server Management Studio" com a opção "Executar como administrador"


  6. No SQL Server Management Studio, execute as alterações desejadas no servidor (ex.: alteração da senha do usuário “sa”, inclusão do seu usuário no grupo “sysadmin”, inclusão do grupo de administradores local como sysadmin no SQL, etc…). Depois de feitas as alterações, feche o SQL Server Management Studio.


  7. Pare o serviço do SQL novamente, usando o mesmo comando executado no passo 3.
    NET STOP NomeDoServicoPasso1



  8. Reinicie o serviço do SQL em modo normal, executando o mesmo comando do passo 4, mas sem o parâmetro /m no final.
    NET START NomeDoServicoPasso1



  9. Pronto, pode voltar a usar seu servidor de banco de dados normalmente.



Os passos acima podem ser feitos para qualquer versão e instância de SQL Server ou SQL Express e também funcionam em versões anteriores do SQL.

A lista de palestras do TechEd Brasil 2010 foi alterada

A lista de palestras do TechEd Brasil 2010 foi alterada ontem devido à ajustes na grade e 2 das minhas palestras mudaram de dia e de horário. Se você já havia montado a sua agenda, vá ao site e atualize.

Tech·Ed 2010

Segue abaixo a grade que montei para mim com as minhas 3 palestras destacadas (as minhas que mudaram de horário estão marcadas abaixo com um * )

segunda-feira, 13/09/2010

  • 13:45 - 15:00 - Dicas, truques do visual Studio 2010 e novas funcionalidades do Visual Basic e C# - João Paulo Clementi, Renato Haddad
  • 15:30 - 16:45 - Desenvolvimento com C# no mundo moderno - Alfred Myers
  • 17:15 - 18:30 - Tudo o que você precisa saber sobre Scrum e Visual Studio ALM em 150 min - Parte 1 - André Dias, Giovanni Bassi
  • 18:45 - 20:00 - Scrum Process Template para TFS 2010: Seja ágil de verdade - Parte 2 - André Dias, Giovanni Bassi

terça-feira, 14/09/2010

  • 09:00 - 10:15 - Novidades e razões para migrar para o Microsoft .Net Framework 4 - Diego Blanco, João Paulo Clementi
  • 10:45 - 12:00 - Meu site anda meio lento... e eu não sei mais o que fazer! - Vinicius Canto Xavier
  • 13:45 - 15:00 - WPF Data-Binding de A à Z - Kelps Leite de Sousa *
  • 15:30 - 16:45 - Implementando Serviços RESTful usando o Microsoft .NET Framework - Israel Aece
  • 17:15 - 18:30 - Aplicações WEB com Silverlight 4 fora do Browser - Djonatas Tenfen, Rogerio Cordeiro
  • ASK the Experts - Mesa de Silverlight (não aparece na grade)

quarta-feira, 15/09/2010

  • 09:00 - 10:15 - Silverlight 4 e Expression Blend 4: Tecnologia e Ferramenta em suas Mãos - Rodrigo Kono
  • 10:45 - 12:00 - Como e onde devo utilizar o Managed Extensibility Framework (MEF) - Rogério Moraes de Carvalho
  • 13:45 - 15:00 - Criando Rich Internet Applications (RIA) com Silverlight 4 e WCF RIA Services - Kelps Leite de Sousa
  • 15:30 - 16:45 - Entendendo a Plataforma de Aplicações do Windows Phone 7 - Galileu Vieira, Luciano Condé
  • 17:15 - 18:30 - Aproveitando ao máximo as ferramentas do Visual Studio 2010 para Silverlight e WPF - Kelps Leite de Sousa *

Infelizmente não será possível assistir a todas a palestras que eu gostaria. Espero que as palestras sejam gravadas esse ano para que possamos assistir depois as palestras que perdermos ao vivo.

Vejo vocês lá!