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