Partilhar via


ALTER LOGIN (Transact-SQL)

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

Transact-SQL convenções de sintaxe

Observação

Microsoft Entra ID era anteriormente conhecido como Azure Ative Directory (Azure AD).

Selecione um produto

Na linha seguinte, selecione o nome do produto em que está interessado e apenas as informações desse produto são apresentadas.

* Servidor SQL *  

de instância gerenciada SQL

Plataforma de análise
Sistema (PDW)

 

SQL Server

Sintaxe 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

Argumentos

login_name

Especifica o nome do logon do SQL Server que está sendo alterado. Os logins de domínio devem ser colocados entre parênteses no formato [<domain>\<user>].

ATIVAR | DESATIVAR

Ativa ou desativa este login. A desativação de um login não afeta o comportamento dos logons que já estão conectados. (Use a instrução KILL para encerrar uma conexão existente.) Os logins desativados mantêm suas permissões e ainda podem ser representados.

PASSWORD = 'palavra-passe'

Aplica-se somente a logons do SQL Server. Especifica a senha para o logon que está sendo alterado. As senhas diferenciam maiúsculas de minúsculas.

SENHA = hashed_password

Aplica-se apenas à palavra-chave HASHED. Especifica o valor em hash da senha para o logon que está sendo criado.

Importante

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

DESCARTADO

Aplica-se somente a logons do SQL Server. Especifica que a senha inserida após o argumento PASSWORD já está em hash. Se essa opção não estiver selecionada, a senha será colocada em hash antes de ser armazenada no banco de dados. Esta opção só deve ser usada para sincronização de login entre dois servidores. Não use a opção HASHED para alterar senhas rotineiramente.

OLD_PASSWORD = 'old_password'

Aplica-se somente a logons do SQL Server. A senha atual do login à 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 essa opção estiver incluída, o SQL Server solicitará uma senha atualizada na primeira vez que o logon alterado for usado.

DEFAULT_DATABASE = do banco de dados

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

DEFAULT_LANGUAGE = idioma

Especifica um idioma padrão a ser atribuído ao login. O idioma padrão para todos os logons do Banco de dados SQL é inglês e não pode ser alterado. O idioma padrão do logon do sa no SQL Server no Linux é o inglês, mas pode ser alterado.

NOME = login_name

O novo nome do login 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 = { EM | DESLIGADO }

Aplica-se somente a logons do SQL Server. Especifica se a política de expiração de senha deve ser imposta neste login. O valor padrão é OFF.

CHECK_POLICY = { EM | DESLIGADO }

Aplica-se somente a logons do SQL Server. Especifica que as diretivas de senha do Windows do computador no qual o SQL Server está sendo executado devem ser impostas nesse logon. O valor padrão é ON.

CREDENCIAL = 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. Uma credencial não pode ser mapeada para o login sa.

SEM CREDENCIAL

Remove qualquer mapeamento existente do login para uma credencial de servidor. Para obter mais informações, consulte Credenciais.

DESBLOQUEAR

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

ADICIONAR CREDENCIAL

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

DESCARTAR CREDENCIAL

Remove uma credencial de provedor de Gerenciamento Extensível de Chaves (EKM) do login. Para obter mais informações, consulte Gerenciamento extensível de chaves (EKM).

Comentários

Quando CHECK_POLICY está definido como ON, o argumento HASHED não pode ser usado.

Quando CHECK_POLICY é alterado para ON, ocorre o seguinte comportamento:

  • O histórico de senhas é inicializado com o valor do hash de senha atual.

Quando CHECK_POLICY é alterado para OFF, ocorre o seguinte comportamento:

  • CHECK_EXPIRATION também está definido como OFF.
  • O histórico de senhas é limpo.
  • O valor de lockout_time é redefinido.

Se MUST_CHANGE for especificado, CHECK_EXPIRATION e CHECK_POLICY deverão ser definidos como ATIVADO. Caso contrário, a instrução falhará.

Se CHECK_POLICY estiver definido como DESATIVADO, CHECK_EXPIRATION não poderá ser definido como ATIVADO. Uma instrução ALTER LOGIN que tem essa combinação de opções falha.

Não é possível usar ALTER LOGIN com o argumento DISABLE para negar acesso a um grupo do Windows. Por exemplo, ALTER LOGIN [<domain>\<group>] DISABLE retorna a seguinte mensagem de erro:

"Msg 15151, Level 16, State 1, Line 1
Cannot alter the login '*Domain\Group*', because it doesn't exist or you don't have permission.

Isso é por design.

A partir do SQL Server 2012 (11.x), o SQL Server e o Banco de Dados SQL do Azure usavam um hash SHA-512 combinado com um sal aleatório e exclusivo de 32 bits. Este método tornou estatisticamente inviável para os atacantes deduzir senhas.

O SQL Server 2025 (17.x) introduz um algoritmo de hash iterado, RFC2898, também conhecido como função de derivação de chaves baseada em palavra-passe (PBKDF). Este algoritmo ainda usa SHA-512, mas hashes a senha várias vezes (100.000 iterações), retardando significativamente os ataques de força bruta. Essa alteração melhora a proteção por senha em resposta à evolução das ameaças à segurança e ajuda os clientes a cumprir as diretrizes do NIST SP 800-63b. Esta melhoria de segurança utiliza um algoritmo de hash mais forte, que pode aumentar ligeiramente o tempo de login para os logins de autenticação SQL. O impacto é geralmente menor em ambientes com pooling de ligações, mas pode ser mais notório em cenários sem pooling ou onde a latência de login é monitorizada de perto.

No Banco de dados SQL, os dados de logon necessários para autenticar uma conexão e as regras de firewall no nível de servidor são temporariamente armazenados em cache em cada banco de dados. Esse cache é atualizado periodicamente. Para forçar uma atualização do cache de autenticação e certificar-se de que um banco de dados tem a versão mais recente da tabela de logins, execute DBCC FLUSHAUTHCACHE.

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 login que está sendo alterado for um membro do sysadmin função de servidor fixa ou um beneficiário da permissão CONTROL SERVER, também será necessária a permissão CONTROL SERVER ao fazer as seguintes alterações:

  • Redefinir a senha sem fornecer a senha antiga.
  • Habilitando MUST_CHANGE, CHECK_POLICY ou CHECK_EXPIRATION.
  • Alterar o nome de login.
  • Ativar ou desativar o início de sessão.
  • Mapeando o login para uma credencial diferente.

Uma entidade de segurança pode alterar a senha, o idioma padrão e o banco de dados padrão para seu próprio login.

Exemplos

Um. Ativar um login desativado

O exemplo a seguir habilita o login Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Alterar a palavra-passe de um início de sessão

O exemplo a seguir altera a senha do Mary5 de login para uma senha forte.

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';

C. Alterar a senha de um login quando conectado como o login

Se estiver a tentar alterar a palavra-passe do início de sessão com o qual iniciou sessão no momento e não tiver a permissão ALTER ANY LOGIN, tem de especificar a opção OLD_PASSWORD.

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>' OLD_PASSWORD = '<oldWeakPasswordHere>';

D. Alterar o nome de um login

O exemplo a seguir altera o nome do login Mary5 para John2.

ALTER LOGIN Mary5 WITH NAME = John2;

E. Mapear um login para uma credencial

O exemplo a seguir mapeia o John2 de login para a credencial Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

F. Mapear um login para uma credencial de Gerenciamento Extensível de Chaves

O exemplo a seguir mapeia o Mary5 de login para a credencial EKM EKMProvider1.

ALTER LOGIN Mary5 ADD CREDENTIAL EKMProvider1;
GO

F. Desbloquear um login

Para desbloquear um logon do SQL Server, execute a instrução a seguir, substituindo-**** pela senha de conta desejada.

ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK;
GO

Para desbloquear um login sem alterar a senha, desative a política de verificação e ligue-a novamente.

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;
ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;
GO

G. Alterar a senha de um login usando o HASHED

O exemplo a seguir altera a senha do login do TestUser para um valor já hash.

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO

* Banco de dados SQL *

de instância gerenciada SQL

Plataforma de análise
Sistema (PDW)

 

Base de Dados SQL

Sintaxe do Banco de Dados SQL do Azure

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. Os logins de domínio devem ser colocados entre parênteses no formato [domínio\usuário].

ATIVAR | DESATIVAR

Ativa ou desativa este login. A desativação de um login não afeta o comportamento dos logons que já estão conectados. (Use a instrução KILL para encerrar uma conexão existente.) Os logins desativados mantêm suas permissões e ainda podem ser representados.

PASSWORD = 'palavra-passe'

Aplica-se somente a logons do SQL Server. Especifica a senha para o logon que está sendo alterado. As senhas diferenciam maiúsculas de minúsculas.

Conexões continuamente ativas com o Banco de dados SQL exigem uma nova autorização (executada pelo Mecanismo de Banco de Dados) pelo menos a cada 10 horas. O Mecanismo de Banco de Dados tenta reautorizar usando a senha enviada originalmente e nenhuma entrada do usuário é necessária. Por motivos de desempenho, quando uma senha é redefinida no Banco de dados SQL, a conexão não é reautenticada, mesmo que a conexão seja redefinida devido ao pool de conexões. Isso é diferente do comportamento do SQL Server local. Se a senha foi alterada desde que a conexão foi inicialmente autorizada, a conexão deve ser encerrada e uma nova conexão deve ser feita usando a nova senha. Um usuário com a permissão KILL DATABASE CONNECTION pode encerrar explicitamente uma conexão com o Banco de dados SQL usando o comando KILL. Para obter mais informações, consulte KILL.

Importante

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

OLD_PASSWORD = 'old_password'

Aplica-se somente a logons do SQL Server. A senha atual do login à qual uma nova senha será atribuída. As senhas diferenciam maiúsculas de minúsculas.

NOME = login_name

O novo nome do login 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 (\).

Comentários

No Banco de dados SQL, os dados de logon necessários para autenticar uma conexão e as regras de firewall no nível de servidor são temporariamente armazenados em cache em cada banco de dados. Esse cache é atualizado periodicamente. Para forçar uma atualização do cache de autenticação e certificar-se de que um banco de dados tem a versão mais recente da tabela de logins, execute DBCC FLUSHAUTHCACHE.

Permissões

Requer a permissão ALTER ANY LOGIN.

Se o login que está sendo alterado for um membro do sysadmin função de servidor fixa ou um beneficiário da permissão CONTROL SERVER, também será necessária a permissão CONTROL SERVER ao fazer as seguintes alterações:

  • Redefinir a senha sem fornecer a senha antiga.
  • Alterar o nome de login.
  • Ativar ou desativar o início de sessão.
  • Mapeando o login para uma credencial diferente.

Uma entidade de segurança pode alterar a palavra-passe do seu próprio início de sessão.

Exemplos

Esses exemplos também incluem exemplos para usar outros produtos SQL. Veja quais argumentos anteriores são suportados.

Um. Ativar um login desativado

O exemplo a seguir habilita o login Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Alterar a palavra-passe de um início de sessão

O exemplo a seguir altera a senha do Mary5 de login para uma senha forte.

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';

C. Alterar o nome de um login

O exemplo a seguir altera o nome do login Mary5 para John2.

ALTER LOGIN Mary5 WITH NAME = John2;

D. Mapear um login para uma credencial

O exemplo a seguir mapeia o John2 de login para a credencial Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Mapear um login para uma credencial de Gerenciamento Extensível de Chaves

O exemplo a seguir mapeia o Mary5 de login para a credencial EKM EKMProvider1.

Aplica-se a: SQL Server 2008 (10.0.x) e posterior.

ALTER LOGIN Mary5 ADD CREDENTIAL EKMProvider1;
GO

F. Alterar a senha de um login usando o HASHED

O exemplo a seguir altera a senha do login do TestUser para um valor já hash.

Aplica-se a: SQL Server 2008 (10.0.x) e posterior.

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO

* Instância gerenciada SQL *

Plataforma de análise
Sistema (PDW)

 

Azure SQL Managed Instance

Sintaxe do SQL Server e da Instância Gerenciada SQL do Azure

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
-- Syntax for Azure SQL Managed Instance using Microsoft Entra logins

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

<status_option> ::=
    ENABLE | DISABLE

<set_option> ::=
     DEFAULT_DATABASE = database
   | DEFAULT_LANGUAGE = language

Argumentos

Argumentos aplicáveis aos logins SQL e Microsoft Entra

login_name

Especifica o nome do logon do SQL Server que está sendo alterado. Os logins do Microsoft Entra devem ser especificados como user@domain. Por exemplo, john.smith@contoso.com, ou como o grupo ou nome do aplicativo Microsoft Entra. Para logins do Microsoft Entra, o login_name deve corresponder a um logon existente do Microsoft Entra criado no banco de dados master.

ATIVAR | DESATIVAR

Ativa ou desativa este login. A desativação de um login não afeta o comportamento dos logons que já estão conectados. (Use a instrução KILL para encerrar uma conexão existente.) Os logins desativados mantêm suas permissões e ainda podem ser representados.

DEFAULT_DATABASE = do banco de dados

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

DEFAULT_LANGUAGE = idioma

Especifica um idioma padrão a ser atribuído ao login. O idioma padrão para todos os logons do Banco de dados SQL é inglês e não pode ser alterado. O idioma padrão do logon do sa no SQL Server no Linux é o inglês, mas pode ser alterado.

Argumentos aplicáveis apenas a logons SQL

PASSWORD = 'palavra-passe'

Aplica-se somente a logons do SQL Server. Especifica a senha para o logon que está sendo alterado. As senhas diferenciam maiúsculas de minúsculas. As senhas também não se aplicam quando usadas com logons externos, como logons do Microsoft Entra.

Conexões continuamente ativas com o Banco de dados SQL exigem uma nova autorização (executada pelo Mecanismo de Banco de Dados) pelo menos a cada 10 horas. O Mecanismo de Banco de Dados tenta reautorizar usando a senha enviada originalmente e nenhuma entrada do usuário é necessária. Por motivos de desempenho, quando uma senha é redefinida no Banco de dados SQL, a conexão não é reautenticada, mesmo que a conexão seja redefinida devido ao pool de conexões. Isso é diferente do comportamento do SQL Server local. Se a senha foi alterada desde que a conexão foi inicialmente autorizada, a conexão deve ser encerrada e uma nova conexão deve ser feita usando a nova senha. Um usuário com a permissão KILL DATABASE CONNECTION pode encerrar explicitamente uma conexão com o Banco de dados SQL usando o comando KILL. Para obter mais informações, consulte KILL.

SENHA = hashed_password

Aplica-se apenas à palavra-chave HASHED. Especifica o valor em hash da senha para o logon que está sendo criado.

DESCARTADO

Aplica-se somente a logons do SQL Server. Especifica que a senha inserida após o argumento PASSWORD já está em hash. Se essa opção não estiver selecionada, a senha será colocada em hash antes de ser armazenada no banco de dados. Esta opção só deve ser usada para sincronização de login entre dois servidores. Não use a opção HASHED para alterar senhas rotineiramente.

OLD_PASSWORD = 'old_password'

Aplica-se somente a logons do SQL Server. A senha atual do login à 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 essa opção estiver incluída, o SQL Server solicitará uma senha atualizada na primeira vez que o logon alterado for usado.

NOME = login_name

O novo nome do login que está sendo renomeado. Se o logon 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 = { EM | DESLIGADO }

Aplica-se somente a logons do SQL Server. Especifica se a política de expiração de senha deve ser imposta neste login. O valor padrão é OFF.

CHECK_POLICY = { EM | DESLIGADO }

Aplica-se somente a logons do SQL Server. Especifica que as diretivas de senha do Windows do computador no qual o SQL Server está sendo executado devem ser impostas nesse logon. O valor padrão é ON.

CREDENCIAL = 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. Uma credencial não pode ser mapeada para o login sa.

SEM CREDENCIAL

Remove qualquer mapeamento existente do login para uma credencial de servidor. Para obter mais informações, consulte Credenciais.

DESBLOQUEAR

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

ADICIONAR CREDENCIAL

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

DESCARTAR CREDENCIAL

Remove uma credencial de provedor de Gerenciamento Extensível de Chaves (EKM) do login. Para obter mais informações, consulte Gerenciamento extensível de chaves (EKM).

Comentários

Quando CHECK_POLICY está definido como ON, o argumento HASHED não pode ser usado.

Quando CHECK_POLICY é alterado para ON, ocorre o seguinte comportamento:

  • O histórico de senhas é inicializado com o valor do hash de senha atual.

Quando CHECK_POLICY é alterado para OFF, ocorre o seguinte comportamento:

  • CHECK_EXPIRATION também está definido como OFF.
  • O histórico de senhas é limpo.
  • O valor de lockout_time é redefinido.

Se MUST_CHANGE for especificado, CHECK_EXPIRATION e CHECK_POLICY deverão ser definidos como ATIVADO. Caso contrário, a instrução falhará.

Se CHECK_POLICY estiver definido como DESATIVADO, CHECK_EXPIRATION não poderá ser definido como ATIVADO. Uma instrução ALTER LOGIN que tem essa combinação de opções falha.

Não é possível usar ALTER_LOGIN com o argumento DISABLE para negar acesso a um grupo do Windows. Isso é por design. Por exemplo, ALTER_LOGIN [domínio\grupo] DISABLE retorna a seguinte mensagem de erro:

"Msg 15151, Level 16, State 1, Line 1 "Cannot alter the login '*Domain\Group*', because it doesn't exist or you don't have permission."

No Banco de dados SQL, os dados de logon necessários para autenticar uma conexão e as regras de firewall no nível de servidor são temporariamente armazenados em cache em cada banco de dados. Esse cache é atualizado periodicamente. Para forçar uma atualização do cache de autenticação e certificar-se de que um banco de dados tem a versão mais recente da tabela de logins, execute DBCC FLUSHAUTHCACHE.

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 login que está sendo alterado for um membro do sysadmin função de servidor fixa ou um beneficiário da permissão CONTROL SERVER, também será necessária a permissão CONTROL SERVER ao fazer as seguintes alterações:

  • Redefinir a senha sem fornecer a senha antiga.
  • Habilitando MUST_CHANGE, CHECK_POLICY ou CHECK_EXPIRATION.
  • Alterar o nome de login.
  • Ativar ou desativar o início de sessão.
  • Mapeando o login para uma credencial diferente.

Uma entidade de segurança pode alterar a senha, o idioma padrão e o banco de dados padrão para seu próprio login.

Somente uma entidade de segurança SQL com privilégios sysadmin pode executar um comando ALTER LOGIN em um logon do Microsoft Entra.

Exemplos

Esses exemplos também incluem exemplos para usar outros produtos SQL. Veja quais argumentos anteriores são suportados.

Um. Ativar um login desativado

O exemplo a seguir habilita o login Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Alterar a palavra-passe de um início de sessão

O exemplo a seguir altera a senha do Mary5 de login para uma senha forte.

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';

C. Alterar o nome de um login

O exemplo a seguir altera o nome do login Mary5 para John2.

ALTER LOGIN Mary5 WITH NAME = John2;

D. Mapear um login para uma credencial

O exemplo a seguir mapeia o John2 de login para a credencial Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Mapear um login para uma credencial de Gerenciamento Extensível de Chaves

O exemplo a seguir mapeia o Mary5 de login para a credencial EKM EKMProvider1.

Aplica-se a: SQL Server 2008 (10.0.x) e posterior e Instância Gerenciada SQL do Azure.

ALTER LOGIN Mary5 ADD CREDENTIAL EKMProvider1;
GO

F. Desbloquear um login

Para desbloquear um logon do SQL Server, execute a instrução a seguir, substituindo-**** pela senha de conta desejada.

ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK;
GO

Para desbloquear um login sem alterar a senha, desative a política de verificação e ligue-a novamente.

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;

ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;
GO

G. Alterar a senha de um login usando o HASHED

O exemplo a seguir altera a senha do login do TestUser para um valor já hash.

Aplica-se a: SQL Server 2008 (10.0.x) e posterior e Instância Gerenciada SQL do Azure.

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO

H. Desativar o login de um usuário do Microsoft Entra

O exemplo a seguir desabilita o logon de um usuário do Microsoft Entra, joe@contoso.com.

ALTER LOGIN [joe@contoso.com] DISABLE;

de instância gerenciada SQL

* Sinapse do Azure
Análise *

Plataforma de análise
Sistema (PDW)

 

Azure Synapse Analytics

Sintaxe para Sinapse do Azure

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. Os logins de domínio devem ser colocados entre parênteses no formato [domínio\usuário].

ATIVAR | DESATIVAR

Ativa ou desativa este login. A desativação de um login não afeta o comportamento dos logons que já estão conectados. (Use a instrução KILL para encerrar uma conexão existente.) Os logins desativados mantêm suas permissões e ainda podem ser representados.

PASSWORD = 'palavra-passe'

Aplica-se somente a logons do SQL Server. Especifica a senha para o logon que está sendo alterado. As senhas diferenciam maiúsculas de minúsculas.

Conexões continuamente ativas com o Banco de dados SQL exigem uma nova autorização (executada pelo Mecanismo de Banco de Dados) pelo menos a cada 10 horas. O Mecanismo de Banco de Dados tenta reautorizar usando a senha enviada originalmente e nenhuma entrada do usuário é necessária. Por motivos de desempenho, quando uma senha é redefinida no Banco de dados SQL, a conexão não é reautenticada, mesmo que a conexão seja redefinida devido ao pool de conexões. Isso é diferente do comportamento do SQL Server local. Se a senha foi alterada desde que a conexão foi inicialmente autorizada, a conexão deve ser encerrada e uma nova conexão deve ser feita usando a nova senha. Um usuário com a permissão KILL DATABASE CONNECTION pode encerrar explicitamente uma conexão com o Banco de dados SQL usando o comando KILL. Para obter mais informações, consulte KILL.

Importante

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

OLD_PASSWORD = 'old_password'

Aplica-se somente a logons do SQL Server. A senha atual do login à qual uma nova senha será atribuída. As senhas diferenciam maiúsculas de minúsculas.

NOME = login_name

O novo nome do login 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 (\).

Comentários

No Banco de dados SQL, os dados de logon necessários para autenticar uma conexão e as regras de firewall no nível de servidor são temporariamente armazenados em cache em cada banco de dados. Esse cache é atualizado periodicamente. Para forçar uma atualização do cache de autenticação e certificar-se de que um banco de dados tem a versão mais recente da tabela de logins, execute DBCC FLUSHAUTHCACHE.

Permissões

Requer a permissão ALTER ANY LOGIN.

Se o login que está sendo alterado for um membro do sysadmin função de servidor fixa ou um beneficiário da permissão CONTROL SERVER, também será necessária a permissão CONTROL SERVER ao fazer as seguintes alterações:

  • Redefinir a senha sem fornecer a senha antiga.
  • Alterar o nome de login.
  • Ativar ou desativar o início de sessão.
  • Mapeando o login para uma credencial diferente.

Uma entidade de segurança pode alterar a palavra-passe do seu próprio início de sessão.

Exemplos

Esses exemplos também incluem exemplos para usar outros produtos SQL. Veja quais argumentos anteriores são suportados.

Um. Ativar um login desativado

O exemplo a seguir habilita o login Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Alterar a palavra-passe de um início de sessão

O exemplo a seguir altera a senha do Mary5 de login para uma senha forte.

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';

C. Alterar o nome de um login

O exemplo a seguir altera o nome do login Mary5 para John2.

ALTER LOGIN Mary5 WITH NAME = John2;

D. Mapear um login para uma credencial

O exemplo a seguir mapeia o John2 de login para a credencial Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Mapear um login para uma credencial de Gerenciamento Extensível de Chaves

O exemplo a seguir mapeia o Mary5 de login para a credencial EKM EKMProvider1.

Aplica-se a: SQL Server 2008 (10.0.x) e posterior.

ALTER LOGIN Mary5 ADD CREDENTIAL EKMProvider1;
GO

F. Desbloquear um login

Para desbloquear um logon do SQL Server, execute a instrução a seguir, substituindo-**** pela senha de conta desejada.

ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK;
GO

G. Alterar a senha de um login usando o HASHED

O exemplo a seguir altera a senha do login do TestUser para um valor já hash.

Aplica-se a: SQL Server 2008 (10.0.x) e posterior.

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO

de instância gerenciada SQL

* Análise
Sistema de plataforma (PDW) *

 

Sistema de plataforma de análise

Sintaxe para o Analytics Platform System

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

<status_option> ::= ENABLE | DISABLE

<set_option> ::=
    PASSWORD = 'password'
    [
      OLD_PASSWORD = 'oldpassword'
      | <password_option> [ <password_option> ]
    ]
    | NAME = login_name
    | CHECK_POLICY = { ON | OFF }
    | CHECK_EXPIRATION = { ON | OFF }

<password_option> ::=
    MUST_CHANGE | UNLOCK

Argumentos

login_name

Especifica o nome do logon do SQL Server que está sendo alterado. Os logins de domínio devem ser colocados entre parênteses no formato [domínio\usuário].

ATIVAR | DESATIVAR

Ativa ou desativa este login. A desativação de um login não afeta o comportamento dos logons que já estão conectados. (Use a instrução KILL para encerrar uma conexão existente.) Os logins desativados mantêm suas permissões e ainda podem ser representados.

PASSWORD = 'palavra-passe'

Aplica-se somente a logons do SQL Server. Especifica a senha para o logon que está sendo alterado. As senhas diferenciam maiúsculas de minúsculas.

Importante

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

OLD_PASSWORD = 'old_password'

Aplica-se somente a logons do SQL Server. A senha atual do login à 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 essa opção estiver incluída, o SQL Server solicitará uma senha atualizada na primeira vez que o logon alterado for usado.

NOME = login_name

O novo nome do login que está sendo renomeado. Se o logon 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 = { EM | DESLIGADO }

Aplica-se somente a logons do SQL Server. Especifica se a política de expiração de senha deve ser imposta neste login. O valor padrão é OFF.

CHECK_POLICY = { EM | DESLIGADO }

Aplica-se somente a logons do SQL Server. Especifica que as diretivas de senha do Windows do computador no qual o SQL Server está sendo executado devem ser impostas nesse logon. O valor padrão é ON.

DESBLOQUEAR

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

Comentários

Quando CHECK_POLICY está definido como ON, o argumento HASHED não pode ser usado.

Quando CHECK_POLICY é alterado para ON, ocorre o seguinte comportamento:

  • O histórico de senhas é inicializado com o valor do hash de senha atual.

Quando CHECK_POLICY é alterado para OFF, ocorre o seguinte comportamento:

  • CHECK_EXPIRATION também está definido como OFF.
  • O histórico de senhas é limpo.
  • O valor de lockout_time é redefinido.

Se MUST_CHANGE for especificado, CHECK_EXPIRATION e CHECK_POLICY deverão ser definidos como ATIVADO. Caso contrário, a instrução falhará.

Se CHECK_POLICY estiver definido como DESATIVADO, CHECK_EXPIRATION não poderá ser definido como ATIVADO. Uma instrução ALTER LOGIN que tem essa combinação de opções falha.

Não é possível usar ALTER_LOGIN com o argumento DISABLE para negar acesso a um grupo do Windows. Isso é por design. Por exemplo, ALTER_LOGIN [domínio\grupo] DISABLE retorna a seguinte mensagem de erro:

"Msg 15151, Level 16, State 1, Line 1 "Cannot alter the login '*Domain\Group*', because it doesn't exist or you don't have permission."

No Banco de dados SQL, os dados de logon necessários para autenticar uma conexão e as regras de firewall no nível de servidor são temporariamente armazenados em cache em cada banco de dados. Esse cache é atualizado periodicamente. Para forçar uma atualização do cache de autenticação e certificar-se de que um banco de dados tem a versão mais recente da tabela de logins, execute DBCC FLUSHAUTHCACHE.

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 login que está sendo alterado for um membro do sysadmin função de servidor fixa ou um beneficiário da permissão CONTROL SERVER, também será necessária a permissão CONTROL SERVER ao fazer as seguintes alterações:

  • Redefinir a senha sem fornecer a senha antiga.
  • Habilitando MUST_CHANGE, CHECK_POLICY ou CHECK_EXPIRATION.
  • Alterar o nome de login.
  • Ativar ou desativar o início de sessão.
  • Mapeando o login para uma credencial diferente.

Uma entidade de segurança pode alterar a senha, o idioma padrão e o banco de dados padrão para seu próprio login.

Exemplos

Esses exemplos também incluem exemplos para usar outros produtos SQL. Veja quais argumentos anteriores são suportados.

Um. Ativar um login desativado

O exemplo a seguir habilita o login Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Alterar a palavra-passe de um início de sessão

O exemplo a seguir altera a senha do Mary5 de login para uma senha forte.

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';

C. Alterar o nome de um login

O exemplo a seguir altera o nome do login Mary5 para John2.

ALTER LOGIN Mary5 WITH NAME = John2;

D. Mapear um login para uma credencial

O exemplo a seguir mapeia o John2 de login para a credencial Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Mapear um login para uma credencial de Gerenciamento Extensível de Chaves

O exemplo a seguir mapeia o Mary5 de login para a credencial EKM EKMProvider1.

Aplica-se a: SQL Server 2008 (10.0.x) e posterior.

ALTER LOGIN Mary5 ADD CREDENTIAL EKMProvider1;
GO

F. Desbloquear um login

Para desbloquear um logon do SQL Server, execute a instrução a seguir, substituindo-**** pela senha de conta desejada.

ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK;
GO

Para desbloquear um login sem alterar a senha, desative a política de verificação e ligue-a novamente.

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;

ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;
GO

G. Alterar a senha de um login usando o HASHED

O exemplo a seguir altera a senha do login do TestUser para um valor já hash.

Aplica-se a: SQL Server 2008 (10.0.x) e posterior.

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO