Compartilhar via


Política de palavras-passe

Aplica-se ao:SQL Server

O SQL Server pode usar mecanismos de política de senha do Windows. A política de senha se aplica a um logon que usa a autenticação do SQL Server e a um usuário de banco de dados independente com senha.

O SQL Server pode aplicar a mesma complexidade e as políticas de expiração usadas no Windows para senhas usadas no SQL Server. Esta funcionalidade depende da NetValidatePasswordPolicy API.

Observação

O Banco de Dados SQL do Azure impõe complexidade de senha. As seções de expiração de senha e imposição de política não se aplicam ao Banco de Dados SQL do Azure. Para obter informações sobre a política de senha para a Instância Gerenciada de SQL do Azure, consulte nossas Perguntas frequentes sobre a Instância Gerenciada de SQL.

Complexidade de senha

As políticas de complexidade de senha são projetadas para deter ataques de força bruta aumentando o número de possíveis senhas. Quando a política de complexidade de senha é imposta, as novas senhas devem atender às seguintes diretrizes:

  • A senha não contém o nome da conta do usuário.

  • A senha tem um comprimento de pelo menos oito caracteres.

  • A senha contém caracteres de três das quatro categorias seguintes:

    • Letras maiúsculas latinas (A por meio Z)
    • Letras minúsculas latinas (a por meio z)
    • Dígitos base 10 (0 até 9)
    • Caracteres não numéricos, como: ponto de exclamação (!), sinal de dólar ($), sinal de número (#) ou porcentagem (%).

As senhas podem ter até 128 caracteres. Use senhas longas e complexas.

Expiração de senha

As políticas de vencimento da senha são usadas para gerenciar o tempo de vida de uma senha. Quando o SQL Server impõe a política de expiração de senha, os usuários são lembrados a alterar as senhas antigas e as contas com senhas expiradas são desabilitadas.

Aplicação de políticas

A imposição da política de senha pode ser configurada separadamente para cada logon do SQL Server. Use ALTER LOGIN para configurar as opções de política de senha de um logon do SQL Server. As regras seguintes se aplicam à configuração da imposição de política de senha:

  • Quando CHECK_POLICY é alterado para ON, os seguintes comportamentos ocorrem:

    • CHECK_EXPIRATION também é definido como ON, a menos que esteja explicitamente definido como OFF.
    • O histórico de senhas é inicializado com o valor do hash da senha atual.
    • As opções Duração do bloqueio de conta, Limite de bloqueio de conta e Zerar contador de bloqueios de conta após também estão habilitadas.
  • Quando CHECK_POLICY é alterado para OFF, os seguintes comportamentos ocorrem:

    • CHECK_EXPIRATION também é definido como OFF.
    • O histórico de senhas será apagado.
    • O valor de lockout_time é redefinido.

Algumas combinações de opções de política não têm suporte.

  • Se MUST_CHANGE for especificado, CHECK_EXPIRATION e CHECK_POLICY devem ser definidos como ON. Caso contrário, a instrução falhará.

  • Se CHECK_POLICY estiver definido como OFF, CHECK_EXPIRATION não poderá ser definido como ON. Uma ALTER LOGIN instrução que tem essa combinação de opções falha.

  • A configuração CHECK_POLICY = ON impede a criação de senhas que são:

    • Nulas ou em branco
    • A mesma do computador ou logon
    • Qualquer uma das seguintes opções: password, admin, administrator, sa, sysadmin

A política de senha pode ser configurada no Windows ou transmitida por um domínio. Para exibir a política de senha do computador, use o snap-in do MMC da Política de Segurança Local (secpol.msc).

Observação

Para logons do SQL Server habilitados CHECK_POLICY, se você executar ALTER LOGIN e não incluir OLD_PASSWORD no comando para alterar a senha, o Impor Histórico de Senhas será ignorado. Esse é um comportamento por design para permitir redefinições de senha, apesar de quaisquer senhas usadas anteriormente. Outras verificações associadas a CHECK_POLICY, incluindo comprimento e complexidade, são verificadas independentemente de o OLD_PASSWORD ser usado.

Verificar as informações da política de senha do usuário do SQL

Você pode revisar as políticas de senha de usuário de SQL e as datas de expiração no SQL Server usando a consulta a seguir. Embora a consulta a seguir também funcione no Banco de Dados SQL do Azure, somente a complexidade da senha é imposta no Banco de Dados SQL do Azure.

SELECT name,
       is_policy_checked,
       is_expiration_checked,
       LOGINPROPERTY(name, 'IsMustChange') AS IsMustChange,
       LOGINPROPERTY(name, 'IsLocked') AS IsLocked,
       LOGINPROPERTY(name, 'LockoutTime') AS LockoutTime,
       LOGINPROPERTY(name, 'PasswordLastSetTime') AS PasswordLastSetTime,
       LOGINPROPERTY(name, 'IsExpired') AS IsExpired,
       LOGINPROPERTY(name, 'BadPasswordCount') AS BadPasswordCount,
       LOGINPROPERTY(name, 'BadPasswordTime') AS BadPasswordTime,
       LOGINPROPERTY(name, 'HistoryLength') AS HistoryLength,
       modify_date
FROM sys.sql_logins;