Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Autenticação do SQL Server versus autenticação do Windows:qual usar e quando




A autenticação é um componente crítico de qualquer estratégia de segurança. Hoje, vamos discutir a autenticação do SQL Server e como ela é essencial para proteger seu ambiente do SQL Server e o papel que a autenticação do Windows desempenha.

Estabelecer uma conexão


Tudo começa com uma conexão. Para estabelecer uma conexão de banco de dados bem-sucedida, o cliente ou aplicativo requer as seguintes informações:
  • Nome de domínio totalmente qualificado do SQL Server
  • Nome da instância
  • Número da porta
  • Credenciais (nome de usuário e senha) para autenticação

Por exemplo, suponha que você use um banco online. Para acessar sua conta, você deve inserir credenciais para fins de autenticação. O banco o identifica quando você fornece credenciais válidas e permite o acesso aos seus serviços mediante verificação.

Da mesma forma, ao fazer logon no SQL Server, os usuários precisam especificar credenciais válidas para que o SQL Server possa autenticar sua identidade e conceder o acesso apropriado.

O SQL Server fornece dois modos de autenticação de servidor:
  • Autenticação do Windows
  • Modo de autenticação do SQL Server e do Windows (modo misto)



Você pode definir esses métodos de autenticação durante a instalação do SQL Server ou alterá-los posteriormente por meio de uma reinicialização. É fundamental que os administradores de banco de dados entendam as diferenças entre esses métodos de autenticação e os implementem de acordo com os requisitos específicos de sua organização.

Vamos nos aprofundar para entender as vantagens e desvantagens da autenticação do SQL Server e do Windows.

Uma visão geral da autenticação do SQL Server


Os administradores de banco de dados criam logons SQL e fornecem as permissões apropriadas para que os usuários se autentiquem no SQL Server. Os usuários precisam especificar o logon e a senha ao se conectarem ao SQL Server, conforme mostrado abaixo.



As credenciais do usuário são validadas através das informações armazenadas no banco de dados mestre. Você pode impor as seguintes políticas para logons do SQL Server.


  • Aplicar a política de senha Observação:os administradores podem marcar esta opção para implementar a política de senha do Windows para logons do SQL Server. Inclui especificar o comprimento e a complexidade da senha.
  • Aplicar a expiração da senha :você pode impor a idade máxima de uma senha. A senha expirará e precisará ser alterada conforme definido pelos critérios de idade.
  • O usuário deve alterar a senha no próximo login :O administrador atribui uma senha durante a criação do login do SQL. Depois que o usuário fizer login com suas credenciais, ele precisará especificar uma nova senha, e os administradores não saberão dessa nova senha.

Observação:todas essas configurações estão no nível de login do SQL individual. Portanto, se você precisar criar vários logins SQL, deverá configurar cada conta com a política necessária.

Não podemos habilitar apenas a autenticação SQL. Para habilitá-lo, use a opção de autenticação mista que inclui a autenticação do Windows e do SQL.

Desvantagens da autenticação do SQL Server


Existem algumas limitações e desvantagens de usar apenas a autenticação do SQL Server.
  • Os usuários precisam lembrar as credenciais de login do SQL e fornecê-las na string de conexão sempre que se conectarem ao SQL Server. Se você tiver vários SQL Servers, pode ser difícil para o usuário acompanhar as senhas de cada instância.
  • O SQL Server armazena a senha no banco de dados mestre em formato criptografado (hash). Os hackers podem roubar as informações acessando o banco de dados. Como essas credenciais criptografadas precisam ser transmitidas pela rede, isso pode aumentar as chances de roubo das credenciais do usuário.
  • Você não pode implementar políticas de conta adicionais (personalizadas) com os logins de autenticação do SQL Server.
  • Aumenta a tarefa de gerenciamento de login para administradores de banco de dados. Os administradores de banco de dados não têm um console de gerenciamento central para gerenciar logins em todas as instâncias.

Suponha que você tenha mais de 500 instâncias SQL e um usuário precise de acesso a todas essas instâncias. Nesse caso, seria uma tarefa tediosa para o administrador do banco de dados conectar-se a cada instância e criar logins de usuários. Da mesma forma, se uma pessoa deixou a organização, o administrador do banco de dados precisa descobrir os logins SQL desse indivíduo e removê-los de todas essas instâncias. Este pode ser um processo muito demorado.
  • Você pode ter problemas de usuário órfão ao mover um banco de dados para instâncias diferentes, e isso pode ocorrer devido a uma incompatibilidade de SID no banco de dados mestre e do usuário na nova instância.
  • Você precisa gerenciar as políticas de segurança para cada login do SQL. Você não pode definir uma política universal para todas as contas da sua organização. Para uma base de dados grande, é uma tarefa árdua definir a política para cada login individual.

Melhores casos de uso para autenticação do SQL Server

  • Ele pode ajudar aplicativos mais antigos e softwares de terceiros a conectar bancos de dados se eles não oferecerem suporte à autenticação do Windows (AD).
  • Você pode exigir que os usuários de domínios não confiáveis ​​se conectem ao SQL Server. Nesse caso, o aplicativo pode especificar logins SQL nas cadeias de conexão e conectar-se ao banco de dados.
  • Para conectar instâncias SQL independentes que não fazem parte dos grupos do Active Directory (AD).
  • Ele pode ajudar o SQL Server a oferecer suporte a aplicativos da Web em que os usuários criam suas próprias identidades.
  • Os administradores compartilham um ID comum para se conectar ao SQL Server usando a autenticação do Active Directory em alguns casos. Esse pool de conexões não é uma boa prática. Nesse caso, você pode criar logins separados para cada usuário e conectar-se ao banco de dados usando suas credenciais.
  • Por padrão, se você implementar o Banco de Dados SQL na nuvem, ou seja, Banco de Dados SQL do Azure ou AWS RDS, você receberá credenciais de login para autenticação do SQL Server. Posteriormente, se necessário, você pode configurar a autenticação baseada em AD.
  • Você pode usá-lo para se conectar a partir de sistemas operacionais cruzados, como Linux e macOS.

Uma visão geral da autenticação do Windows


Na autenticação do Windows, o usuário deve primeiro se autenticar no Active Directory. O SQL Server autentica os usuários por meio do token principal do Windows no sistema operacional. Com isso, o SQL Server não pede senha para validação de identidade. Portanto, o Windows confirma as identidades dos usuários para autenticação. O SQL Server não armazena as credenciais na autenticação do Windows. A conexão que usa a autenticação do Windows é chamada de conexão confiável ou integrada.



Observação:a autenticação do Windows é o método de autenticação padrão quando você instala o SQL Server.

Vantagens da autenticação do Windows

  • A autenticação do Windows é uma maneira segura de se conectar ao SQL Server e usa os tokens e SPNs para fins de autenticação usando o protocolo de autenticação Kerberos. Portanto, ele não envia senhas pela rede e protege o roubo de senhas pela rede.
  • O SQL Server não armazena as credenciais do usuário.
  • Ele usa o protocolo de segurança Kerberos e você pode implementar políticas de senha, como senhas complexas, bloqueios de conta e expiração de senha. Essa política de senha pode ser implementada no nível da organização em todos os servidores. Portanto, você pode controlar as políticas de segurança do usuário no nível da organização, em vez de no nível de login individual, como na autenticação do SQL Server.
  • A autenticação do Windows permite a separação de tarefas. A equipe do Active Directory (AD) gerencia os usuários do AD. Visto que o DBA adiciona usuários do AD nas instâncias do SQL e fornece as permissões apropriadas.
  • O Active Directory ajuda a criar grupos do Windows. A equipe do AD pode adicionar várias pessoas que exigem acesso igual em um grupo do AD. Posteriormente, você pode adicionar o grupo na instância SQL e fornecer permissões no nível do grupo. Portanto, se uma nova pessoa ingressar, uma vez que ela faça parte do grupo AD, o acesso ao banco de dados é concedido automaticamente no servidor onde esse grupo AD existe. Da mesma forma, quando um usuário se muda da organização e seu ID é removido desses grupos do AD, ele não pode mais acessar o banco de dados.

Desvantagens da autenticação do Windows

  • Se você usa apenas a autenticação do Windows para SQL Server, todos os usuários devem fazer parte do Active Directory.
  • Os DBAs não têm controle sobre os logins e grupos do AD.
  • A associação ao grupo AD não é conhecida pelo DBA. Você não recebe uma notificação se um usuário for adicionado ou removido dos grupos do AD.

Resumo


Esta postagem de blog descreve os principais componentes da autenticação do SQL Server e da autenticação do Windows. Espero que ajude você a entender as diferenças entre esses métodos de autenticação para decidir qual funciona melhor para sua empresa e suas circunstâncias.

A autenticação do SQL Server pode ser usada na mesma máquina que o SQL Server ou em uma conexão remota. Se você trabalha em um ambiente do Active Directory, é recomendável usar a autenticação do Windows. Se você trabalha em um ambiente não Active Directory, pode utilizar a autenticação do SQL Server para conexões de banco de dados.

A autenticação do Windows fornece mais segurança e flexibilidade para gerenciar logons no SQL Server. Portanto, você deve usá-lo sempre que possível.