Política de senha

Aplica-se: 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 imposição de política e expiração de senha 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 a Z)

    • Letras minúsculas latinas (a a z)

    • Dígitos de base 10 (0 a 9)

    • Caracteres não alfanuméricos como: ponto de exclamação (!), cifrão ($), tecla jogo da velha (#) ou porcentagem (%).

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

Vencimento da 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.

Imposição de política

A imposição da política de senha pode ser configurada separadamente para cada logon do SQL Server. Use ALTER LOGIN (Transact-SQL) Para configurar as opções da 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, o seguinte comportamento ocorre:

    • CHECK_EXPIRATION também é definido como ON, a menos que seja definido explicitamente como OFF.

    • O histórico de senhas é inicializado com o valor do hash da senha atual.

    • As opçõesduração do bloqueio de conta, limite de bloqueio de contae zerar contador de bloqueios de conta após também estão habilitadas.

  • Quando CHECK_POLICY é alterado para OFF, o seguinte comportamento ocorre:

    • CHECK_EXPIRATION também será 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 deverão ser definidos como ON. Caso contrário, a instrução falhará.

  • Se CHECK_POLICY for definido como OFF, CHECK_EXPIRATION não poderá ser definido como ON. Uma instrução ALTER LOGON com essa combinação de opções falhará.

  • A definição de CHECK_POLICY = ON impede a criação de senhas:

    • 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 que com CHECK_POLICY habilitado, se você executar ALTER LOGIN e não incluir OLD_PASSWORD no comando para alterar a senha, Aplicar 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 ao CHECK_POLICY, incluindo duração e complexidade, são verificadas independentemente de OLD_PASSWORD ser usado.

Verificar informações de política de senha do usuário de 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;

CREATE LOGIN (Transact-SQL)

ALTER LOGIN (Transact-SQL)

CREATE USER (Transact-SQL)

ALTER USER (Transact-SQL)

Criar um logon

Criar um usuário de banco de dados