Não pode ser desativado completamente, por dois motivos:
Na instalação, logins são provisionados NT AUTHORITY\SYSTEM
, NT SERVICE\SQLSERVERAGENT
(ou um grupo que contém a conta de serviço SQL Agent), e NT SERVICE\MSSQLSERVER
(ou um grupo que contém a conta de serviço de banco de dados SQL). Esses são sysadmin
logons de nível que precisam estar disponíveis para o SQL Server funcionar corretamente.
Embora um teste rápido tenha revelado que excluir todos os três logins impedia a reinicialização do SQL Agent (o mecanismo do banco de dados funcionava bem), tenho certeza de que existem outras funções que dependem dos outros dois logons ... eles foram criados por padrão por uma razão, para não mexer com eles. (Para sua informação, se você testá-lo: a opção de script Drop & Create para um logon no SSMS não cria a associação da função de servidor.)
No modo de usuário único, os administradores locais recebem automaticamente sysadmin
privilégios de nível, independentemente de haver ou não um login criado que "contenha" esses usuários. Este é um cabide para quando você trancou as chaves no carro.
Conforme mencionado na outra resposta, apenas os logons criados explicitamente no Windows terão acesso à conexão (meu comentário original estava incorreto) - remover todos os logons criados pelo usuário no Windows é suficiente para impedir o acesso.
Se você precisar dar um passo adiante e impedir a criação de logons do Windows , aqui está um ponto de partida (o Gerenciamento Baseado em Política, pelo menos em 2008, não oferece suporte à prevenção disso, pois acontece):
CREATE TRIGGER trg_PreventWindowsLogins
ON ALL SERVER
AFTER CREATE_LOGIN
AS
BEGIN
SET NOCOUNT ON;
IF (EVENTDATA().exist('/EVENT_INSTANCE[1]/LoginType[1]/text()[1] eq "Windows (NT) Login"') = 1)
BEGIN
RAISERROR(N'Not allowed to create Windows logins!', 16, 1);
ROLLBACK;
END
END
Obviamente, qualquer pessoa com permissões suficientes pode derrotar isso, mas isso é uma questão separada ...