ALTER LOGIN (Transact-SQL)
Altera as propriedades de uma conta de logon do SQL Server.
Convenções da sintaxe Transact-SQL
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 este logon. Desabilitar um logon não afeta o comportamento de logons que já estão conectados. Logons desabilitados retêm suas permissões e ainda podem ser representados.PASSWORD ='password'
Aplica-se somente a logons do SQL Server. Especifica a senha do logon que está sendo alterado. Senhas diferenciam maiúsculas e 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á esteja com hash. Se essa opção não for selecionada, a senha será hashed antes de ser armazenada no banco de dados. Essa opção só deve ser usada para sincronização de logon entre dois servidores. Não use a opção HASHED para alterar senhas rotineiramente.OLD_PASSWORD ='oldpassword'
Aplica-se somente a logons do SQL Server. A senha atual do logon a que uma senha nova 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 nome novo do logon que está sendo renomeado. Se este for um logon do Windows, o SID do administrador do Windows correspondente ao novo nome deverá corresponder ao SID associado ao logon no SQL Server. O nome novo 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 política de expiração de senha deve ser aplicada neste logon. O valor padrão é OFF.CHECK_POLICY = { ON | OFF }
Aplica-se somente a logons do SQL Server. Especifica se as políticas de senha do Windows do computador em que o SQL Server está em execução devem ser aplicadas a este 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). Não é possível mapear uma credencial para logon sa.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 um provedor de gerenciamento de chave extensível (EKM) ao logon. Para obter mais informações, consulte Gerenciamento extensível de chaves (EKM).DROP CREDENTIAL
Remove uma credencial do provedor de gerenciamento de chave extensível (EKM) do logon. Para obter mais informações, consulte Gerenciamento extensível de chaves (EKM).
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á:
- O histórico de senhas é 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 senhas será 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 essa combinação de opções falhará.
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.
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 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.
Exemplos
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
Consulte também
Referência
CREATE CREDENTIAL (Transact-SQL)