Clique no banner para conhecer e adquirir o meu treinamento de Bancos de Dados no Azure

SQL Server – Como ativar/habilitar o usuário sa

Post Views 10,997 views
Reading time 4 minutes

Hey guys!
Tudo na paz né ?

Através desse artigo, vou inaugurar uma nova categoria no meu blog chamada “O que não fazer”, que são alguns artigos de más práticas de administração de banco de dados que vou começar a reunir aqui e assim, demonstrar a vocês tudo o que não deve ser feito.

Para estrear essa categoria, vou escrever aqui sobre uma má prática que vejo muita gente utilizando e perguntando nos grupos como se deve fazer, que é habilitar o usuário sa na instância SQL Server.

Por quê o usuário SA vem desativado por padrão?

Conforme foi lembrado nos comentários pelo meu amigo Edvaldo Castro, caso você instale o SQL Server utilizando o modo Windows Authentication Mode, o usuário “sa” vem desativado por padrão. Caso você selecione a opção “SQL Server and Windows Authentication Mode” (também conhecida como Mixed Mode) durante a instalação, você terá que definir a senha do usuário sa e este virá ativado por padrão.

Por motivos de segurança, é altamente recomendável manter esse usuário desativado, uma vez que é um usuário com perfil administrador (pertence à server role sysadmin), tendo permissão para realizar qualquer ação na instância, e um usuário padrão, que vem pré-criado em todas as instâncias SQL Server. Por conta disso, a maioria dos ataques feitos à instâncias SQL Server são realizados através de tentativas de acesso à instância utilizando esse usuário.

Infelizmente, acabamos encontrando vários sistemas e aplicações que insistem em conectar no banco de dados utilizando o usuário sa (Pra quê?? Por quê??), gerando uma grande falha de segurança no banco dados, facilitando a vida de crackers que tentem invadir o seu banco e deixando o DBA sem saber o que fazer (especialmente quando ele não tem a opção de barrar a subida desse sistema).

Como podemos observar na imagem acima, o SQL Server nos permite habilitar uma opção que gere um log de falhas de tentativas de conexão, o que pode nos ajudar a identificar se a nossa base está sofrendo tentativas de invasão por força bruta. Entretanto, a não ser que você tenha um monitoramento ativo dessas falhas de autenticação (o que não é algo muito comum), você só vai identificar que isso está acontecendo horas, talvez dias, depois dos ataques. E até lá, já pode ter sido tarde demais.

Por este motivo, uma boa forma de tentar dificultar a possibilidade de invasão é não deixar que o possível invasor saiba o nome de algum usuário com privilégios na instância. E ativar o usuário SA é justamente o oposto disso.

Quero correr esse risco. Como ativar o usuário sa?

Bom, dados os avisos acima, e se você realmente quer correr esse risco de segurança, vou demonstrar agora como ativar o usuário SA na sua instância SQL Server.

Caso você não tenha habilitado o modo de autenticação mista (SQL Server and Windows authentication mode) e a sua instância esteja permitindo apenas logins utilizando autenticação AD (Isso é uma boa prática de segurança, mas nem sempre é viável), você irá precisar ativar o Mixed Mode Authetication.

Para isso, basta clicar com o botão direito na sua instância e selecionar a opção “Properties”:

Após isso, ative a opção “SQL Server and Windows Authentication mode”, nas opções de segurança:

Após confirmar as alterações, sua instância já estará permitindo o login utilizando tanto usuários do AD (Active Directory) quando utilizando usuários SQL Server (como o sa). Vale lembrar que o serviço do SQL Server precisa ser reiniciado para que as alterações sejam aplicadas.

Caso você queira aplicar essa alteração utilizando códigos T-SQL, é só utilizar esse script:

Agora que você ativou o login utilizando usuários SQL Server, é hora de ativar o usuário sa. Para isso, expanda as pastas “Security” e “Logins” da janela “Object Explorer” e clique com o botão direito sobre o usuário “sa”, que estará com um ícone e um pequeno “x” vermelho, indicando que esse usuário está desativado:

Após clicar no botão “Properties”, você verá a tela com as propriedades do usuário “sa”. Nesta tela, você poderá definir uma nova senha para o usuário “sa” e também definir políticas de complexidade de senha (Enforce password policy), políticas de expiração de senha (Enforce password expiration) e definir se o usuário deve trocar a senha no próximo login (User must change password at next login).

Na aba “Status”, você poderá efetivar ativar/desativar o login do usuário “sa”, conforme print abaixo:

Após confirmar as alterações clicando no botão “OK”, o usuário “sa” estará ativo e já poderá ser utilizado normalmente para invadir acessar a sua instância.

Caso você queira habilitar o usuário SA utilizando um script T-SQL, basta utilizar o script abaixo:

Bom pessoal,
Espero que vocês não tenham ativado o usuário “sa” no ambiente de vocês e que tenham gostado desse artigo.

Um abraço e até a próxima!