Como as práticas recomendadas do SQL Server dizem, " o modo de autenticação do Windows é mais seguro que a autenticação do SQL ". E agora eu quero saber: existe uma maneira de proteger o SQL Server do usuário com direitos de administrador do Windows?
sql-server
sql-server-2008
security
tsionyx
fonte
fonte
Respostas:
Não.
Se um usuário for um administrador do Windows de uma caixa, suponha que ele possua tudo na caixa (incluindo o SQL Server). Com os direitos de administrador do Windows, é trivial ignorar qualquer proteção direcionada que você aplicar (como um gatilho de logon que identifique seu nome de usuário), personificando outra pessoa (inclusive
NT AUTHORITY\SYSTEM
, que obtém direitos de administrador de fato em todas as instâncias locais do SQL Server ). A auditoria também não ajudará muito, porque eles podem facilmente desativá-la, mas você deve tê-la por precaução.Se você não confiar em alguém, não dê a eles direitos de administrador do Windows, ponto final.
fonte
Não, não é possível impedir completamente que os administradores locais obtenham
sysadmin
acesso a uma instância do SQL Server.Se a instância for reiniciada no modo de usuário único , o SQL Server será codificado para permitir
sysadmin
privilégios de administrador local , mesmo que não haja um logon explícito. A razão disso existir é para fins de recuperação, pois é possível bloquear-se de uma instância.Dito isto, restringir o acesso enquanto a instância está sendo executada no modo multiusuário (sem interrupções de serviço) não é tão difícil. Como Aaron mencionou, os administradores locais podem representar
NT AUTHORITY\SYSTEM
, que por padrão possui umsysadmin
logon de nível criado no SQL Server 2008. Isso pode ser explorado para recuperar osysadmin
acesso enquanto o servidor está em execução. (Observação: no SQL Server 2012, esse logon não é mais asysadmin
.) Não sei exatamente para que serve esse logon (atualizações / hot fixes / etc., Presumivelmente), mas acho que é seguro desativá-lo, exceto durante esses eventos. Se não houver outros logons personificáveis, isso deve ser suficiente para negar o acesso. Novamente, apenas se a instância estiver em execução, ininterruptamente .fonte
Por padrão no SQL 2008 e 2012, não há acesso padrão para administradores do Windows em um SQL Server. Para que um administrador do Windows (ou seja, alguém que seja um administrador de domínio ou um administrador local) tenha acesso, seu logon precisa ter acesso explícito ou o grupo ao qual ele pertence, além de direitos no próprio SQL Server. Ao configurar a instância, você deve especificar um logon ou grupo do Active Directory como administrador, mas esse logon / grupo pode ser qualquer pessoa em seu domínio.
No SQL 2005, havia um
BUILTIN\Administrators
grupo com direitos de acesso sysadmin. Este grupo permitiria aos administradores locais o administrador de sistemas acessar o SQL Server. Esse grupo pode ser removido do SQL Server e foi considerado uma prática recomendada.Dito isto, não há como impedir que o Windows (local ou domínio) afete o servidor em que o SQL Server mora. Isso significa que os administradores ainda podem afetar serviços e configurações no nível do sistema operacional, alterar a segurança do diretório e outras tarefas no nível do sistema operacional. É por isso que eles são administradores do Windows.
Em geral, você deve confiar em seus administradores, SQL Server e Windows. Embora os administradores do Windows não possam executar tarefas ou acessar dados (por padrão) no próprio SQL Server, eles ainda controlam o ambiente em que o SQL Server vive. Você precisa ter cuidado com quem designa para essas funções.
fonte