ALTER LOGIN (Transact-SQL)
Altera as propriedades de uma conta de logon do SQL Server.
Sintaxe
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
Argumentos
login_name
Especifica o nome do logon do SQL Server que está sendo alterado. Logons no domínio devem ser colocados entre colchetes no formato [domínio\usuário].ENABLE | DISABLE
Habilita ou desabilita o logon.PASSWORD ='password'
Aplica-se somente a logons do SQL Server. Especifica a senha do logon que está sendo alterado. As senhas diferenciam maiúsculas de minúsculas.PASSWORD **=**hashed_password
Só se aplica à palavra-chave HASHED. Especifica o valor com hash da senha para o logon que está sendo criado.HASHED
Aplica-se somente a logons do SQL Server. Especifica que a senha digitada depois do argumento PASSWORD já está com hash. Se esta opção não for selecionada, a senha terá hash antes de ser armazenada no banco de dados. Essa opção deve ser usada somente para sincronização de logon entre dois servidores. Não use a opção HASHED para alterar senhas rotineiramente.Observação Este argumento só funciona com hashes gerados pelo SQL Server 2000 ou versões posteriores.
OLD_PASSWORD ='oldpassword'
Aplica-se somente a logons do SQL Server. A senha atual do logon ao qual uma nova senha será atribuída. As senhas diferenciam maiúsculas de minúsculas.MUST_CHANGE
Aplica-se somente a logons do SQL Server. Se esta opção estiver incluída, o SQL Server solicitará uma senha atualizada quando o logon alterado for usado pela primeira vez.DEFAULT_DATABASE **=**database
Especifica um banco de dados padrão a ser atribuído ao logon.DEFAULT_LANGUAGE **=**language
Especifica um idioma padrão a ser atribuído ao logon.NAME = login_name
O novo nome do logon que está sendo renomeado. Se este for um logon do Windows, o SID da entidade do Windows correspondente ao novo nome deverá corresponder ao SID associado ao logon no SQL Server. O novo nome de um logon do SQL Server não pode conter um caractere de barra invertida (\).CHECK_EXPIRATION = { ON | OFF }
Aplica-se somente a logons do SQL Server. Especifica se a diretiva de expiração de senha deve ser imposta neste logon. O valor padrão é OFF.CHECK_POLICY = { ON | OFF }
Aplica-se somente a logons do SQL Server. Especifica que as diretivas de senha do Windows do computador em que o SQL Server está em execução devem ser impostas nesse logon. O valor padrão é ON.CREDENTIAL = credential_name
O nome de uma credencial a ser mapeada para um logon do SQL Server. A credencial já deve existir no servidor. Para obter mais informações, consulte Credenciais (Mecanismo de Banco de Dados).NO CREDENTIAL
Remove qualquer mapeamento existente do logon para uma credencial de servidor. Para obter mais informações, consulte Credenciais (Mecanismo de Banco de Dados).UNLOCK
Aplica-se somente a logons do SQL Server. Especifica que um logon bloqueado deve ser desbloqueado.ADD CREDENTIAL
Adiciona uma credencial de EKM (gerenciamento extensível de chaves) ao logon. Para obter mais informações, consulte Compreendendo o EKM (Gerenciador de Chave Extensível).DROP CREDENTIAL
Remove uma credencial de provedor EKM para o logon. Para obter mais informações, consulte Compreendendo o EKM (Gerenciador de Chave Extensível).
Comentários
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 será inicializado com o valor do hash de 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 será apagado.
O valor de lockout_time será 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 impostos apenas no Windows Server 2003 e posterior. Para obter mais informações, consulte Diretiva de senha. |
Importante |
---|
Um problema conhecido no Windows Server 2003 poderá impedir que a contagem de senhas incorretas seja redefinida depois que o limite de Bloqueio de Conta for atingido. Isso poderá causar um bloqueio imediato nas tentativas de logon com falha subseqüentes. Você pode redefinir a contagem 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 [domínio\grupo] DISABLE retornará a seguinte mensagem de erro:
“Msg 15151, Nível 16, Estado 1, Linha 1
Não é possível alterar o logon 'Domínio\Grupo' porque ele não existe ou você não tem permissão.”
Isso ocorre por design.
Permissões
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 que está 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á necessária quando as seguintes alterações forem efetuadas:
Redefinição de senha sem fornecimento da senha antiga.
Habilitaçã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.
Uma entidade pode alterar a senha, o idioma padrão e o banco de dados padrão do seu próprio logon.
Exemplos
A. Habilitando um logon desabilitado
O exemplo a seguir habilita o logon Mary5.
ALTER LOGIN Mary5 ENABLE;
B. Alterando a senha de um logon
O exemplo a seguir 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 a seguir 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 a seguir 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 instrução a seguir, substituindo **** pela senha da conta desejada.
ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK ;
GO
Para desbloquear um logon sem alterar a senha, desative a diretiva 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