Modo de usuário único para o SQL Server

Aplica-se a:SQL Server

Este artigo fornece as informações e as etapas para iniciar uma instância do SQL Server no modo de usuário único, que permite que apenas um usuário se conecte à instância.

Iniciar uma instância no modo de usuário único

Iniciar o SQL Server no modo de usuário único permite que qualquer membro do grupo de Administradores locais do computador se conecte à instância do SQL Server como um membro da função de servidor fixa sysadmin. Para obter mais informações, veja Conectar-se ao SQL Server quando os administradores do sistema estão bloqueados.

Em algumas circunstâncias, pode ser necessário iniciar uma instância do SQL Server no modo de usuário único usando a opção de inicialização-m. Por exemplo, você pode querer mudar as opções de configuração de servidor ou recuperar um banco de dados master danificado ou outro banco de dados do sistema. As duas ações exigem iniciar uma instância do SQL Server no modo de usuário único.

O exemplo a seguir inicia a instância do SQL Server no modo de usuário único e permite somente a conexão por meio do Editor de Consultas do SQL Server Management Studio.

net start "SQL Server (MSSQLSERVER)" /m"Microsoft SQL Server Management Studio - Query"

Para restaurar um banco de dados master no Linux no modo de usuário único, consulte Restaurar o banco de dados mestre no Linux no modo de usuário único.

Considerações gerais

Ao iniciar uma instância do SQL Server no modo de usuário único, observe o seguinte:

  • Apenas um usuário pode se conectar ao servidor.

  • O processo CHECKPOINT não é executado. Por padrão, ele é executado automaticamente na inicialização.

Observação

Interrompa o serviço do SQL Server Agent antes de se conectar a uma instância do SQL Server no modo de usuário único. Caso contrário, o serviço do SQL Server Agent usará a conexão, bloqueando-a.

Ao iniciar uma instância do SQL Server no modo de usuário único, o SQL Server Management Studio pode conectar-se ao SQL Server. O Pesquisador de Objetos no Management Studio pode falhar porque ele exige mais de uma conexão para algumas operações. Para gerenciar o SQL Server no modo de usuário único, execute as instruções Transact-SQL conectando-se por meio do Editor de Consultas no Management Studio ou no Azure Data Studio, ou use o utilitário sqlcmd.

Ao usar a opção -m com SQLCMD ou Management Studio, você pode limitar as conexões a um aplicativo cliente especificado.

Observação

No Linux, SQLCMD deve estar em letras maiúsculas, como mostrado.

Por exemplo, -m"SQLCMD" limita conexões a uma única conexão, e essa conexão deve se identificar como o programa cliente sqlcmd. Use essa opção quando estiver iniciando o SQL Server no modo de usuário único e se um aplicativo cliente desconhecido estiver usando a única conexão disponível. Para conectar-se pelo Editor de Consulta no Management Studio, use -m"Microsoft SQL Server Management Studio - Query".

Importante

Não use essa opção como um recurso de segurança. O aplicativo cliente fornece o nome do aplicativo cliente e pode fornecer um nome falso como parte da cadeia de conexão.

Considerações sobre Always on

Há considerações adicionais quando se usa o modo de servidor único para instâncias do SQL Server configuradas como uma FCI (instância de cluster de failover) Always on ou quando os bancos de dados fazem parte de um grupo de disponibilidade Always on.

Grupos de disponibilidade

A inicialização do grupo de disponibilidade Always On e dos bancos de dados do grupo é ignorada quando o SQL Server é iniciado no modo de usuário único. Se precisar solucionar problemas de um banco de dados que requer que o SQL Server seja iniciado no modo de usuário único e o banco de dados faz parte de um grupo de disponibilidade, você deverá remover o banco de dados do grupo de disponibilidade antes de iniciar o SQL Server no modo de usuário único para que o banco de dados fique online.

Instâncias de cluster de failover

Para instalação do SQL Server em um ambiente clusterizado, quando o SQL Server for iniciado em modo de usuário único, a dll de recurso de cluster usará a conexão disponível, bloqueando quaisquer outras conexões com o servidor. Quando o SQL Server estiver nesse estado e você tentar colocar o recurso do SQL Server Agent online, ele poderá realizar o failover do recurso SQL em outro nó, caso o recurso esteja configurado para afetar o grupo.

Para resolver o problema, use o procedimento a seguir:

  1. Remova o parâmetro de inicialização -m das propriedades avançadas do SQL Server.

  2. Coloque o recurso do SQL Server offline.

  3. No nó do proprietário atual desse grupo, emita o seguinte comando no prompt de comando:

    net start MSSQLSERVER /m
    
  4. Verifique junto ao administrador do cluster ou no console de gerenciamento de cluster de failover se o recurso do SQL Server ainda está offline.

  5. Conecte-se ao SQL Server agora usando o seguinte comando e execute a operação necessária: SQLCMD -E -S<servername>.

  6. Quando a operação for concluída, feche o prompt de comando, e coloque o SQL e os outros recursos online novamente através do administrador do cluster.