Desculpe por fazer uma pergunta do tipo opinião, mas gostaria de saber qual é a melhor prática.
Eu tenho um monte de servidores sql e todos os trabalhos, bem como todos os gerenciadores de conexões para todos os relatórios do SSRS e projetos do SSIS, todos usam um login, sysadmin , é claro. Eu vejo isso como um problema por dois motivos:
- Gostaria que todos os SSRS, SSIS etc. usassem seus próprios logins apenas com as permissões necessárias.
- Eu também gostaria de saber imediatamente o que está causando o bloqueio etc., em vez de ver um login de administrador do sistema todas as vezes e verificar o que está executando a consulta ofensiva.
Meu colega DBA acredita que isso é uma loucura devido ao número de logins necessários (centenas por servidor), sugerindo que um login por banco de dados com a função db_datareader seria mais apropriado. Alguém pode compartilhar links para artigos ou oferecer conselhos?
Obrigado
Como você pediu as melhores práticas, ao usar o sysadmin dessa forma, você está quebrando o Princípio do Mínimo Privilégio , que afirma que:
Eu diria que criar e gerenciar um login para cada usuário, aplicativo, trabalho ou serviço seria ir para a extremidade oposta e isso também é um problema, pois, como seu colega DBA disse, seria um trabalho muito difícil de gerenciar. muitos logins, mas você pode alcançar um meio-termo usando funções e grupos do Windows para esse assunto. Verifique o documento dos diretores .
Citando o comentário de @Dan Guzman : Para fins de identificação, você pode especificar o nome do aplicativo na string de conexão em vez de logins separados.
Depois de configurar as cadeias de conexão e o nome do aplicativo, você pode recuperá-lo de sys.sysprocesses usando sp_who2, sp_whoisactive ou sys.dm_exec_sessions DMV.