Apesar de nossos protestos veementes, nossa gerência decidiu que a equipe de desenvolvimento deve receber direitos 'sa' no servidor de desenvolvimento. O problema é que nós, o grupo de suporte do banco de dados, ainda somos responsáveis por manter essa caixa.
Agora nos foi confiada a tarefa de apresentar uma lista de prós e contras para as equipes de desenvolvimento com esses privilégios aprimorados.
Por favor, adicione a esta lista:
DO - confinar atividades ao DB em desenvolvimento
NÃO --
- alterar as configurações da instância SQL
- sp_configure (incluindo cmdshell)
- adicionar / alterar / excluir quaisquer configurações de segurança
- adicionar / alterar / excluir objetos de banco de dados
- adicionar / alterar / excluir objetos do servidor, como dispositivos de backup e servidores vinculados
- adicionar / alterar / excluir replicação
- adicionar / alterar / excluir planos de manutenção
- toque em qualquer banco de dados que não pertença à sua equipe
Qualquer indicação de ferramentas disponíveis para rastrear as atividades desses usuários será muito apreciada.
Respostas:
Se não for tarde demais, uma opção de compromisso que eu vi que funcionou bem é em vez de atualizar as permissões ou substituir as contas existentes dos desenvolvedores, crie uma conta separada que é usada apenas quando eles precisam de permissões elevadas.
Portanto, normalmente eles funcionam em contas "restritas" individuais (que eu uso livremente porque essas contas restritas ainda precisam de algumas permissões pesadas - por exemplo, criar, soltar, alterar para tabelas). Porém, nas raras ocasiões em que eles acham que precisam
sa
, eles podem fazer login usando esta conta. Em seguida, você pode sinalizar a conta em seus logs e fazer um monitoramento extra nela. Você deu aos desenvolvedores o acesso que eles pediram, mas de uma maneira um pouco mais controlável.Eventualmente, se houver abuso, os logs desta conta poderão ser usados como evidência para removê-la.
fonte
Diz aqui (MSDN) que você precisa do sysadmin (sa) para depurar no SQL Server 2005.
No entanto, essa pergunta SO mostra outro caminho sem sa, que é o que eu pensava inicialmente. Simplesmente permita que eles funcionem
sp_sidedebug
Eu também sugiro dar a eles o SQL Express local, que também resolve outros problemas ...
(editado com mais informações)
Editar, após a resposta de W. Craig Trader
Outros problemas com os direitos "sa", na pior das hipóteses:
por exemplo
xp_cmdshell 'scm -Action 6 -Server PRODSERVER'
fonte
Como sugestão, tenho que configurar o Gerenciamento Baseado em Políticas e impor todo o seu 'fazer' e 'não' como regras de política. Isso ajudaria muito a proteger a instância.
Eu também implantaria a auditoria de alterações DDL, consulte Auditoria no SQL Server 2008 , não apenas como um impedimento, mas principalmente como um sistema de rastreamento de alterações. Quando algo é ferrado, pelo menos você saberá o que mudou.
fonte
Se for o servidor DEVELOPMENT, qual é o problema dos desenvolvedores poderem ter acesso total? Dizer aos desenvolvedores que você não pode adicionar / remover / alterar objetos do banco de dados (por exemplo: tabelas, colunas, índices) é como dizer a eles "Você pode ter um compilador, mas não tem permissão para executá-lo". Parece-me que os desenvolvedores desejam / precisam acessar sua própria instância de banco de dados especificamente para permitir que testem diferentes métodos de solução de problemas SEM ter que mexer com os bancos de dados PRODUCTION ou TEST. Você deve incentivar esse tipo de comportamento, não desencorajá-lo.
Alguns podem sugerir que os desenvolvedores trabalhem com instâncias locais do SQL Express, mas, embora o SQL Express para cada desenvolvedor possa resolver certos problemas, ele tem limitações e características de desempenho diferentes das do SQL Server completo em um servidor separado.
O que você DEVE fazer é instituir um agendamento de backup regular (pelo menos noturno) e trabalhar com os desenvolvedores para garantir que eles saibam como iniciar backups não agendados e restaurar a partir de backups, para que o tempo de inatividade seja minimizado em caso de problemas.
fonte
É o dev servidor, não o servidor grupo de apoio DB, ou o servidor de produção. Mantenha um bom backup / imagem e deixe os desenvolvedores saírem. Deixar o DBA controlar o devbox é como deixar o rabo abanar o cachorro. Está aí para os desenvolvedores fazerem o trabalho do desenvolvedor. Às vezes, isso envolve quebrar as coisas, soltar tabelas e colocá-las de volta com configurações diferentes. As caixas de desenvolvimento sempre estarão em mau estado de conservação após algum tempo, é isso que fazemos. Se não sabemos onde um problema está ocorrendo, tentamos coisas diferentes. Alguns deles são fáceis de desfazer, outros nem tanto.
fonte
sa
, mas faça com que não sejam sa por padrão, para que eles saibam quando estão fazendo algo que precisará de um pouco de trabalho extra para implantar corretamente.Eu não acho que eles precisam de privilégios de SA na caixa Desenvolvimento. Em quase todos os casos, eles podem ficar sem.
Eu acho que uma boa opção é ter a edição dev local instalada.
questão:
Você não deseja que os desenvolvedores adicionem / alterem / excluam objetos de banco de dados? !! Como eles vão se desenvolver?
fonte
Exigimos que todas as alterações na estrutura do banco de dados sejam feitas com scripts (mesmo no dev) e salvas no subversion. Em um cronograma definido, atualizamos o dev do prod e eles precisam executar novamente seus scripts para voltar ao local onde estavam no ciclo de desenvolvimento. Isso ajuda a garantir que tudo seja feito por meio de scripts e que eles tenham scripts prontos na hora da implantação.
Eu sei que em 2008 você pode configurar DDL Triggers para rastrear alterações estruturais do banco de dados. Você pode fazer isso em 2005? Dessa forma, pelo menos você pode descobrir quando alguém altera uma configuração que fez isso e descobrir o porquê.
fonte
A auditoria do SQL Server é o que você deseja, mas, se você fará toda a criação de objetos de banco de dados para eles, por que os desenvolvedores precisam de sa?
http://msdn.microsoft.com/en-us/library/cc280526.aspx
fonte