Compartilhar via


ALTER LOGIN (Transact-SQL)

Altera as propriedades de uma conta de logon do SQL Server.

Aplica-se a: SQL Server (do SQL Server 2008 à versão atual), Banco de dados SQL do Windows Azure (da versão inicial até a versão atual).

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

Sintaxe

-- SQL Server Syntax
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

-- Windows Azure SQL Database

ALTER LOGIN login_name 
  { 
      <status_option> 
    | WITH <set_option> [ ,.. .n ] 
  } 
[;]

<status_option> ::=
    ENABLE | DISABLE

<set_option> ::= 
    PASSWORD ='password' 
    [
      OLD_PASSWORD ='oldpassword'
    ] 
    | NAME = login_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. As senhas diferenciam maiúsculas de minúsculas.

  • PASSWORD **=**hashed_password

    Aplica-se a: do SQL Server 2008 ao SQL Server 2014.

    Só se aplica à palavra-chave HASHED. Especifica o valor com hash da senha para o logon que está sendo criado.

    Observação sobre segurançaObservação sobre segurança

    Quando um logon (ou um usuário de banco de dados independente) se conecta e é autenticado, a conexão armazena em cache as informações de identidade sobre o logon.Para um logon de Autenticação do Windows, isso inclui informações sobre a associação em grupos do Windows.A identidade do logon permanece autenticada desde que a conexão seja mantida.Para forçar alterações na identidade, como uma redefinição de senha ou alteração na associação de grupo do Windows, o logon deve fazer logoff da autoridade de autenticação (Windows ou SQL Server) e fazer logon novamente.Um membro da função de servidor fixa ou sysadmin ou qualquer logon com a permissão ALTER ANY CONNECTION pode usar o comando KILL para terminar uma conexão e forçar um logon para reconectar.O SQL Server Management Studio pode reutilizar informações de conexão ao abrir várias conexões para as janelas do Pesquisador de Objetos e do Editor de Consultas.Feche todas as conexões para forçar a reconexão.

  • HASHED

    Aplica-se a: do SQL Server 2008 ao SQL Server 2014.

    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 a: do SQL Server 2008 ao SQL Server 2014.

    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

    Aplica-se a: do SQL Server 2008 ao SQL Server 2014.

    Especifica um banco de dados padrão a ser atribuído ao logon.

  • DEFAULT_LANGUAGE **=**language

    Aplica-se a: do SQL Server 2008 ao SQL Server 2014.

    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 a: do SQL Server 2008 ao SQL Server 2014.

    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 a: do SQL Server 2008 ao SQL Server 2014.

    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 neste logon. O valor padrão é ON.

  • CREDENTIAL = credential_name

    Aplica-se a: do SQL Server 2008 ao SQL Server 2014.

    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

    Aplica-se a: do SQL Server 2008 ao SQL Server 2014.

    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 a: do SQL Server 2008 ao SQL Server 2014.

    Aplica-se somente a logons do SQL Server. Especifica que um logon bloqueado deve ser desbloqueado.

  • ADD CREDENTIAL

    Aplica-se a: do SQL Server 2008 ao SQL Server 2014.

    Adiciona uma credencial de provedor EKM (gerenciamento de chave extensível) ao logon. Para obter mais informações, consulte Gerenciamento extensível de chaves (EKM).

  • DROP CREDENTIAL

    Aplica-se a: do SQL Server 2008 ao SQL Server 2014.

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

Aplica-se a: do SQL Server 2008 ao SQL Server 2014.

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.

Aplica-se a: do SQL Server 2008 ao SQL Server 2014.

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 seguinte altera a senha do logon TestUser para um valor em que o hash já foi aplicado.

Aplica-se a: do SQL Server 2008 ao SQL Server 2014.

ALTER LOGIN TestUser WITH 
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

Consulte também

Referência

CREATE LOGIN (Transact-SQL)

DROP LOGIN (Transact-SQL)

CREATE CREDENTIAL (Transact-SQL)

EVENTDATA (Transact-SQL)

Conceitos

Credenciais (Mecanismo de Banco de Dados)

Gerenciamento extensível de chaves (EKM)