ALTER LOGIN (Transact-SQL)
Altera as propriedades de uma conta de logon do SQL Server.
ALTER LOGIN login_name
{
<status_option>
| WITH <set_option> [ ,... ]
| <cryptographic_credential_option>
}
<status_option> ::=
ENABLE | DISABLE
<set_option> ::=
PASSWORD = 'password' | hashed_password HASHED
[
OLD_PASSWORD = 'oldpassword'
| <password_option> [<password_option> ]
]
| DEFAULT_DATABASE = database
| DEFAULT_LANGUAGE = language
| NAME = login_name
| CHECK_POLICY = { ON | OFF }
| CHECK_EXPIRATION = { ON | OFF }
| CREDENTIAL = credential_name
| NO CREDENTIAL
<password_option> ::=
MUST_CHANGE | UNLOCK
<cryptographic_credentials_option> ::=
ADD CREDENTIAL credential_name
| DROP CREDENTIAL credential_name
Quando CHECK_POLICY estiver definido como ON, o argumento HASHED não poderá ser usado.
Quando CHECK_POLICY for alterado para ON, o seguinte comportamento ocorrerá:
CHECK_EXPIRATION também será definido como ON, a menos que seja definido explicitamente como OFF.
O histórico de senha é inicializado com o valor do hash da senha atual.
Quando CHECK_POLICY for alterado para OFF, o seguinte comportamento ocorrerá:
CHECK_EXPIRATION também será definido como OFF.
O histórico de senha é apagado.
O valor de lockout_time é redefinido.
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 esta combinação de opções falhará.
Importante |
|---|
CHECK_EXPIRATION e CHECK_POLICY serão aplicados apenas no Windows Server 2003 e posteriores. Para obter mais informações, consulte Diretiva de senha. |
Importante |
|---|
Uma questão conhecida no Windows Server 2003 deverá impedir que o total de senhas incorretas seja redefinido depois que o limite de bloqueio de conta for atingido. Isso poderá causar um bloqueio imediato em tentativas de logon sem-sucesso subsequentes. Você pode redefinir o total de senhas incorretas manualmente definindo CHECK_POLICY = OFF, seguido por CHECK_POLICY = ON. Para obter mais informações sobre o limite de bloqueio de conta, consulte o artigo 818078 da Base de Dados de Conhecimento Microsoft: Sua conta de usuário pode ser prematuramente bloqueada. |
Você não pode usar ALTER_LOGIN com o argumento DISABLE para negar acesso a um grupo do Windows. Por exemplo, ALTER_LOGIN [domain\group] DISABLE retornará a seguinte mensagem de erro:
“Msg 15151, Nível 16, Estado 1, Linha 1
"Não é possível alterar o logon 'Domain\Group' porque ele não existe ou você não tem permissão".
Isso ocorre por design.
Requer a permissão ALTER ANY LOGIN.
Se a opção CREDENTIAL for usada, também será necessária a permissão ALTER ANY CREDENTIAL.
Se o logon sendo alterado for membro da função de servidor fixa sysadmin ou tiver a permissão CONTROL SERVER, a permissão CONTROL SERVER também será exigida quando as seguintes alterações forem efetuadas:
Redefinição de senha sem fornecimento da senha antiga.
Ativação de MUST_CHANGE, CHECK_POLICY ou CHECK_EXPIRATION.
Alteração do nome de logon.
Habilitação ou desabilitação do logon.
Mapeamento do logon para uma credencial diferente.
Um administrador pode alterar a senha, o idioma padrão e o banco de dados padrão do seu próprio logon.
A. Habilitando um logon desabilitado
O exemplo seguinte ativa o logon Mary5.
ALTER LOGIN Mary5 ENABLE;
B. Alterando a senha de um logon
O exemplo seguinte altera a senha de logon Mary5 para uma senha forte.
ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';
C. Alterando o nome de um logon
O exemplo a seguir altera o nome de logon Mary5 para John2.
ALTER LOGIN Mary5 WITH NAME = John2;
D. Mapeando um logon para uma credencial
O exemplo seguinte mapeia o logon John2 para a credencial Custodian04.
ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;
E. Mapeando um logon para uma credencial de Gerenciamento Extensível de Chaves
O exemplo seguinte mapeia o logon Mary5 para a credencial de EKM EKMProvider1.
ALTER LOGIN Mary5 ADD CREDENTIAL EKMProvider1; GO
F. Desbloqueando um logon
Para desbloquear um logon no SQL Server, execute a seguinte instrução, substituindo **** pela senha da conta desejada.
ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK ; GO
Para desbloquear um logon sem alterar a senha, desative a política de verificação e ative-a novamente.
ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF; ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON; GO
G. Alterando a senha de um logon usando HASHED
O exemplo a seguir altera a senha do logon TestUser para um valor em que o hash já foi aplicado.
ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ; GO