Tenho uma tarefa agendada (no Agendador de tarefas do Windows) que se conecta ao SQL Server usando SMO (autenticação do Windows) e cria um backup do banco de dados. Até o momento, essa tarefa estava em execução na conta Administrador e eu queria alterá-la para usar a conta SYSTEM.
Mudei a tarefa agendada e, para minha total surpresa, ela funcionou imediatamente.
Eu gostaria de entender por que esse é o caso. O sistema é o Windows Server 2012 R2 e o banco de dados é o SQL Server 2012 (SP1) Express Edition. É uma instalação padrão com um usuário de autenticação SQL adicionado.
No SSMS, estes são os logins e suas funções de servidor associadas:
MS_PolicyEventProcessingLogin ## (desativado)
MS_PolicyTsqlExecutionLogin ## (desabilitado)
- MyServer \ Administrator (público, sysadmin)
- MySqlAuthUser (public)
- BUILTIN \ Usuários (público)
- AUTORIDADE NT \ SYSTEM (público)
- NT SERVICE \ MSSQLSERVER (público, sysadmin)
- NT SERVICE \ SQLWriter (público, sysadmin)
- NT SERVICE \ Winmgmt (público, sysadmin)
- sa (public, sysadmin)
O próprio banco de dados possui os seguintes usuários e suas funções:
- MySqlAuthUser (Login MySqlAuthUser) (db_owner)
- dbo (Fazer login) (db_owner)
- convidado (desativado)
- INFORMATION_SCHEMA (desativado)
- sys (desativado)
A exibição das "permissões efetivas" do usuário NT AUTHORITY \ SYSTEM produz a seguinte saída:
- ALTERAR QUALQUER GRUPO DE DISPONIBILIDADE
- CONNECT SQL
- CRIAR GRUPO DE DISPONIBILIDADE
- VER QUALQUER BASE DE DADOS
- VER ESTADO DO SERVIDOR
Por que NT AUTHORITY \ SYSTEM tem permissão para fazer backup de bancos de dados? Fico feliz que sim, mas eu realmente gostaria de entender por que ...