Compartilhar via


ALTER LOGIN (Transact-SQL)

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

convenções de sintaxe Transact-SQL

Nota

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

Selecionar um produto

Na linha a seguir, selecione o nome do produto no qual você está interessado e somente as informações do produto são exibidas.

* SQL Server *  

do Banco de Dados SQL

da Instância Gerenciada de SQL

 

SQL Server

Sintaxe para 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 logons de domínio devem ser colocados entre colchetes no formato [<domain>\<user>].

ENABLE | DESABILITAR

Habilita ou desabilita esse logon. Desabilitar um logon não afeta o comportamento de logons que já estão conectados. (Use a instrução KILL para encerrar uma conexão existente.) Logons desabilitados mantêm suas permissões e ainda podem ser representados.

PASSWORD = 'password'

Aplica-se somente aos logons do SQL Server. Especifica a senha do 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 hash da senha para o logon que está sendo criado.

Importante

Quando um logon (ou um usuário de banco de dados independente) se conecta e é autenticado, a conexão armazena em cache informações de identidade sobre o logon. Para um logon da 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 sair da autoridade de autenticação (Windows ou SQL Server) e entrar novamente. Um membro do sysadmin função de servidor fixa ou qualquer logon com a permissão ALTER ANY CONNECTION pode usar o comando KILL para encerrar uma conexão e forçar um logon a se reconectar. O SQL Server Management Studio pode reutilizar informações de conexão ao abrir várias conexões com o Pesquisador de Objetos e janelas do Editor de Consultas. Feche todas as conexões para forçar a reconexão.

HASH

Aplica-se somente a logons do SQL Server. Especifica que a senha inserida após o argumento PASSWORD já está hash. Se essa opção não estiver selecionada, a senha será hashada 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 = 'old_password'

Aplica-se somente aos 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 aos 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 = 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 logon. 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 é inglês, mas pode ser alterado.

NAME = login_name

O novo nome do logon que está sendo renomeado. Se esse for um logon do Windows, o SID da entidade de segurança 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 aos logons do SQL Server. Especifica se a política de expiração de senha deve ser imposta nesse logon. O valor padrão é OFF.

CHECK_POLICY = { ON | DESLIGADO }

Aplica-se somente aos logons do SQL Server. Especifica que as políticas de senha do Windows do computador em que 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 logon sa.

SEM CREDENCIAL

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

DESTRAVAR

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

ADICIONAR CREDENCIAL

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

DESCARTAR CREDENCIAL

Remove uma credencial do provedor EKM (Extensible Key Management) do logon. Para obter mais informações, consulte [Gerenciamento extensível de chaves (EKM)] (.. /.. /relational-databases/security/encryption/extensible-key-management-ekm.md).

Observações

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

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

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

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

  • CHECK_EXPIRATION também está definido como OFF.
  • O histórico de senhas está limpo.
  • 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 estiver definido como OFF, CHECK_EXPIRATION não poderá ser definido como ON. Uma instrução ALTER LOGIN que tem essa combinação de opções falha.

Você não pode usar ALTER LOGIN com o argumento DISABLE para negar o 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 BD SQL do Azure usaram um hash SHA-512 combinado com um sal aleatório de 32 bits e um sal exclusivo. Esse método tornou estatisticamente inviável que os invasores deduzissem senhas.

A versão prévia do SQL Server 2025 (17.x) apresenta um algoritmo de hash iterado, RFC2898, também conhecido como PBKDF ( função de derivação de chave baseada em senha ). Esse algoritmo ainda usa SHA-512, mas hashes a senha várias vezes (100.000 iterações), diminuindo significativamente os ataques de força bruta. Essa alteração aprimora a proteção por senha em resposta às ameaças de segurança em evolução e ajuda os clientes a cumprir as diretrizes do NIST SP 800-63b.

No Banco de Dados SQL, os dados de logon necessários para autenticar uma conexão e as regras de firewall no nível do 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 garantir que um banco de dados tenha a versão mais recente da tabela de logons, execute DBCC FLUSHAUTHCACHE.

Permissões

Requer a permissão ALTER ANY LOGIN.

Se a opção CREDENTIAL for usada, também exigirá a permissão ALTER ANY CREDENTIAL.

Se o logon que está sendo alterado for um membro do sysadmin função de servidor fixa ou um usuário autorizado da permissão CONTROL SERVER, também exigirá permissão CONTROL SERVER ao fazer as seguintes alterações:

  • Redefinindo a senha sem fornecer a senha antiga.
  • Habilitando MUST_CHANGE, CHECK_POLICY ou CHECK_EXPIRATION.
  • Alterando o nome de logon.
  • Habilitar ou desabilitar o logon.
  • Mapeando o logon 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 logon.

Exemplos

Um. Habilitar um logon desabilitado

O exemplo a seguir habilita o logon Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Alterar a senha de um logon

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

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

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

Se você estiver tentando alterar a senha do logon com o qual está conectado no momento e não tiver a permissão ALTER ANY LOGIN, deverá especificar a opção OLD_PASSWORD.

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

D. Alterar o nome de um logon

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

ALTER LOGIN Mary5 WITH NAME = John2;

E. Mapear um logon para uma credencial

O exemplo a seguir mapeia o John2 de logon para o Custodian04de credenciais.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

F. Mapear um logon para uma credencial de Gerenciamento extensível de chaves

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

ALTER LOGIN Mary5 ADD CREDENTIAL EKMProvider1;
GO

F. Desbloquear um logon

Para desbloquear um logon do 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 política de verificação e, em seguida, ative novamente.

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

G. Alterar a senha de um logon usando HASHED

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

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO

* Banco de Dados SQL *

da Instância Gerenciada de SQL

 

Banco 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 logons de domínio devem estar entre colchetes no formato [domínio\usuário].

ENABLE | DESABILITAR

Habilita ou desabilita esse logon. Desabilitar um logon não afeta o comportamento de logons que já estão conectados. (Use a instrução KILL para encerrar uma conexão existente.) Logons desabilitados mantêm suas permissões e ainda podem ser representados.

PASSWORD = 'password'

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

Conexões continuamente ativas com o Banco de Dados SQL exigem reautorização (executada pelo Mecanismo de Banco de Dados) pelo menos a cada 10 horas. O Mecanismo de Banco de Dados tenta reautorização usando a senha enviada originalmente e nenhuma entrada de usuário é necessária. Por motivos de desempenho, quando uma senha é redefinida no Banco de Dados SQL, a conexão não é autenticada novamente, mesmo que a conexão seja redefinida devido ao pool de conexões. Isso é diferente do comportamento do SQL Server local. Se a senha tiver sido alterada desde que a conexão foi inicialmente autorizada, a conexão deverá ser encerrada e uma nova conexão 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 logon (ou um usuário de banco de dados independente) se conecta e é autenticado, a conexão armazena em cache informações de identidade sobre o logon. Para um logon da 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 sair da autoridade de autenticação (Windows ou SQL Server) e entrar novamente. Um membro do sysadmin função de servidor fixa ou qualquer logon com a permissão ALTER ANY CONNECTION pode usar o comando KILL para encerrar uma conexão e forçar um logon a se reconectar. O SQL Server Management Studio pode reutilizar informações de conexão ao abrir várias conexões com o Pesquisador de Objetos e janelas do Editor de Consultas. Feche todas as conexões para forçar a reconexão.

OLD_PASSWORD = 'old_password'

Aplica-se somente aos 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.

NAME = login_name

O novo nome do logon que está sendo renomeado. Se esse for um logon do Windows, o SID da entidade de segurança 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 (\).

Observações

No Banco de Dados SQL, os dados de logon necessários para autenticar uma conexão e as regras de firewall no nível do 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 garantir que um banco de dados tenha a versão mais recente da tabela de logons, execute DBCC FLUSHAUTHCACHE.

Permissões

Requer a permissão ALTER ANY LOGIN.

Se o logon que está sendo alterado for um membro do sysadmin função de servidor fixa ou um usuário autorizado da permissão CONTROL SERVER, também exigirá permissão CONTROL SERVER ao fazer as seguintes alterações:

  • Redefinindo a senha sem fornecer a senha antiga.
  • Alterando o nome de logon.
  • Habilitar ou desabilitar o logon.
  • Mapeando o logon para uma credencial diferente.

Uma entidade de segurança pode alterar a senha para seu próprio logon.

Exemplos

Esses exemplos também incluem exemplos para usar outros produtos SQL. Veja quais argumentos anteriores têm suporte.

Um. Habilitar um logon desabilitado

O exemplo a seguir habilita o logon Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Alterar a senha de um logon

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

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

C. Alterar o nome de um logon

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

ALTER LOGIN Mary5 WITH NAME = John2;

D. Mapear um logon para uma credencial

O exemplo a seguir mapeia o John2 de logon para o Custodian04de credenciais.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Mapear um logon para uma credencial de Gerenciamento extensível de chaves

O exemplo a seguir mapeia o Mary5 de logon 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 logon usando HASHED

O exemplo a seguir altera a senha do logon 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

do Banco de Dados SQL

* Instância Gerenciada de SQL *

 

Instância Gerenciada de SQL do Azure

Sintaxe para SQL Server e Instância Gerenciada de 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 logons do SQL e do Microsoft Entra

login_name

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

ENABLE | DESABILITAR

Habilita ou desabilita esse logon. Desabilitar um logon não afeta o comportamento de logons que já estão conectados. (Use a instrução KILL para encerrar uma conexão existente.) Logons desabilitados mantêm suas permissões e ainda podem ser representados.

DEFAULT_DATABASE = 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 logon. 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 é inglês, mas pode ser alterado.

Argumentos aplicáveis somente aos logons do SQL

PASSWORD = 'password'

Aplica-se somente aos logons do SQL Server. Especifica a senha do 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 reautorização (executada pelo Mecanismo de Banco de Dados) pelo menos a cada 10 horas. O Mecanismo de Banco de Dados tenta reautorização usando a senha enviada originalmente e nenhuma entrada de usuário é necessária. Por motivos de desempenho, quando uma senha é redefinida no Banco de Dados SQL, a conexão não é autenticada novamente, mesmo que a conexão seja redefinida devido ao pool de conexões. Isso é diferente do comportamento do SQL Server local. Se a senha tiver sido alterada desde que a conexão foi inicialmente autorizada, a conexão deverá ser encerrada e uma nova conexão 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 hash da senha para o logon que está sendo criado.

HASH

Aplica-se somente a logons do SQL Server. Especifica que a senha inserida após o argumento PASSWORD já está hash. Se essa opção não estiver selecionada, a senha será hashada 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 = 'old_password'

Aplica-se somente aos 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 aos 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.

NAME = login_name

O novo nome do logon que está sendo renomeado. Se o logon for um logon do Windows, o SID da entidade de segurança 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 aos logons do SQL Server. Especifica se a política de expiração de senha deve ser imposta nesse logon. O valor padrão é OFF.

CHECK_POLICY = { ON | DESLIGADO }

Aplica-se somente aos logons do SQL Server. Especifica que as políticas de senha do Windows do computador em que 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 logon sa.

SEM CREDENCIAL

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

DESTRAVAR

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

ADICIONAR CREDENCIAL

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

DESCARTAR CREDENCIAL

Remove uma credencial do provedor EKM (Extensible Key Management) do logon. Para obter mais informações, consulte de Gerenciamento extensível de chaves (EKM).

Observações

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

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

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

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

  • CHECK_EXPIRATION também está definido como OFF.
  • O histórico de senhas está limpo.
  • 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 estiver definido como OFF, CHECK_EXPIRATION não poderá ser definido como ON. Uma instrução ALTER LOGIN que tem essa combinação de opções falha.

Você não pode usar ALTER_LOGIN com o argumento DISABLE para negar o acesso a um grupo do Windows. Isso é por design. 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."

No Banco de Dados SQL, os dados de logon necessários para autenticar uma conexão e as regras de firewall no nível do 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 garantir que um banco de dados tenha a versão mais recente da tabela de logons, execute DBCC FLUSHAUTHCACHE.

Permissões

Requer a permissão ALTER ANY LOGIN.

Se a opção CREDENTIAL for usada, também exigirá a permissão ALTER ANY CREDENTIAL.

Se o logon que está sendo alterado for um membro do sysadmin função de servidor fixa ou um usuário autorizado da permissão CONTROL SERVER, também exigirá permissão CONTROL SERVER ao fazer as seguintes alterações:

  • Redefinindo a senha sem fornecer a senha antiga.
  • Habilitando MUST_CHANGE, CHECK_POLICY ou CHECK_EXPIRATION.
  • Alterando o nome de logon.
  • Habilitar ou desabilitar o logon.
  • Mapeando o logon 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 logon.

Somente uma entidade de segurança SQL com privilégios de 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 têm suporte.

Um. Habilitar um logon desabilitado

O exemplo a seguir habilita o logon Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Alterar a senha de um logon

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

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

C. Alterar o nome de um logon

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

ALTER LOGIN Mary5 WITH NAME = John2;

D. Mapear um logon para uma credencial

O exemplo a seguir mapeia o John2 de logon para o Custodian04de credenciais.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Mapear um logon para uma credencial de Gerenciamento extensível de chaves

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

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

ALTER LOGIN Mary5 ADD CREDENTIAL EKMProvider1;
GO

F. Desbloquear um logon

Para desbloquear um logon do 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 política de verificação e, em seguida, ative novamente.

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;

ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;
GO

G. Alterar a senha de um logon usando HASHED

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

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

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO

H. Desabilitar o logon 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;

do Banco de Dados SQL

da Instância Gerenciada de SQL

* Azure Synapse
Análise *

 

Azure Synapse Analytics

Sintaxe do Azure Synapse

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 logons de domínio devem estar entre colchetes no formato [domínio\usuário].

ENABLE | DESABILITAR

Habilita ou desabilita esse logon. Desabilitar um logon não afeta o comportamento de logons que já estão conectados. (Use a instrução KILL para encerrar uma conexão existente.) Logons desabilitados mantêm suas permissões e ainda podem ser representados.

PASSWORD = 'password'

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

Conexões continuamente ativas com o Banco de Dados SQL exigem reautorização (executada pelo Mecanismo de Banco de Dados) pelo menos a cada 10 horas. O Mecanismo de Banco de Dados tenta reautorização usando a senha enviada originalmente e nenhuma entrada de usuário é necessária. Por motivos de desempenho, quando uma senha é redefinida no Banco de Dados SQL, a conexão não é autenticada novamente, mesmo que a conexão seja redefinida devido ao pool de conexões. Isso é diferente do comportamento do SQL Server local. Se a senha tiver sido alterada desde que a conexão foi inicialmente autorizada, a conexão deverá ser encerrada e uma nova conexão 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 logon (ou um usuário de banco de dados independente) se conecta e é autenticado, a conexão armazena em cache informações de identidade sobre o logon. Para um logon da 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 sair da autoridade de autenticação (Windows ou SQL Server) e entrar novamente. Um membro do sysadmin função de servidor fixa ou qualquer logon com a permissão ALTER ANY CONNECTION pode usar o comando KILL para encerrar uma conexão e forçar um logon a se reconectar. O SQL Server Management Studio pode reutilizar informações de conexão ao abrir várias conexões com o Pesquisador de Objetos e janelas do Editor de Consultas. Feche todas as conexões para forçar a reconexão.

OLD_PASSWORD = 'old_password'

Aplica-se somente aos 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.

NAME = login_name

O novo nome do logon que está sendo renomeado. Se esse for um logon do Windows, o SID da entidade de segurança 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 (\).

Observações

No Banco de Dados SQL, os dados de logon necessários para autenticar uma conexão e as regras de firewall no nível do 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 garantir que um banco de dados tenha a versão mais recente da tabela de logons, execute DBCC FLUSHAUTHCACHE.

Permissões

Requer a permissão ALTER ANY LOGIN.

Se o logon que está sendo alterado for um membro do sysadmin função de servidor fixa ou um usuário autorizado da permissão CONTROL SERVER, também exigirá permissão CONTROL SERVER ao fazer as seguintes alterações:

  • Redefinindo a senha sem fornecer a senha antiga.
  • Alterando o nome de logon.
  • Habilitar ou desabilitar o logon.
  • Mapeando o logon para uma credencial diferente.

Uma entidade de segurança pode alterar a senha para seu próprio logon.

Exemplos

Esses exemplos também incluem exemplos para usar outros produtos SQL. Veja quais argumentos anteriores têm suporte.

Um. Habilitar um logon desabilitado

O exemplo a seguir habilita o logon Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Alterar a senha de um logon

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

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

C. Alterar o nome de um logon

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

ALTER LOGIN Mary5 WITH NAME = John2;

D. Mapear um logon para uma credencial

O exemplo a seguir mapeia o John2 de logon para o Custodian04de credenciais.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Mapear um logon para uma credencial de Gerenciamento extensível de chaves

O exemplo a seguir mapeia o Mary5 de logon 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 logon

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

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

G. Alterar a senha de um logon usando HASHED

O exemplo a seguir altera a senha do logon 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

do Banco de Dados SQL

da Instância Gerenciada de SQL

* Análise
PDW (Sistema de Plataforma) *

 

Sistema de Plataforma de Análise

Sintaxe para o Sistema de Plataforma de Análise

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 logons de domínio devem estar entre colchetes no formato [domínio\usuário].

ENABLE | DESABILITAR

Habilita ou desabilita esse logon. Desabilitar um logon não afeta o comportamento de logons que já estão conectados. (Use a instrução KILL para encerrar uma conexão existente.) Logons desabilitados mantêm suas permissões e ainda podem ser representados.

PASSWORD = 'password'

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

Importante

Quando um logon (ou um usuário de banco de dados independente) se conecta e é autenticado, a conexão armazena em cache informações de identidade sobre o logon. Para um logon da 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 sair da autoridade de autenticação (Windows ou SQL Server) e entrar novamente. Um membro do sysadmin função de servidor fixa ou qualquer logon com a permissão ALTER ANY CONNECTION pode usar o comando KILL para encerrar uma conexão e forçar um logon a se reconectar. O SQL Server Management Studio pode reutilizar informações de conexão ao abrir várias conexões com o Pesquisador de Objetos e janelas do Editor de Consultas. Feche todas as conexões para forçar a reconexão.

OLD_PASSWORD = 'old_password'

Aplica-se somente aos 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 aos 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.

NAME = login_name

O novo nome do logon que está sendo renomeado. Se o logon for um logon do Windows, o SID da entidade de segurança 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 aos logons do SQL Server. Especifica se a política de expiração de senha deve ser imposta nesse logon. O valor padrão é OFF.

CHECK_POLICY = { ON | DESLIGADO }

Aplica-se somente aos logons do SQL Server. Especifica que as políticas de senha do Windows do computador em que o SQL Server está sendo executado devem ser impostas nesse logon. O valor padrão é ON.

DESTRAVAR

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

Observações

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

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

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

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

  • CHECK_EXPIRATION também está definido como OFF.
  • O histórico de senhas está limpo.
  • 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 estiver definido como OFF, CHECK_EXPIRATION não poderá ser definido como ON. Uma instrução ALTER LOGIN que tem essa combinação de opções falha.

Você não pode usar ALTER_LOGIN com o argumento DISABLE para negar o acesso a um grupo do Windows. Isso é por design. 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."

No Banco de Dados SQL, os dados de logon necessários para autenticar uma conexão e as regras de firewall no nível do 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 garantir que um banco de dados tenha a versão mais recente da tabela de logons, execute DBCC FLUSHAUTHCACHE.

Permissões

Requer a permissão ALTER ANY LOGIN.

Se a opção CREDENTIAL for usada, também exigirá a permissão ALTER ANY CREDENTIAL.

Se o logon que está sendo alterado for um membro do sysadmin função de servidor fixa ou um usuário autorizado da permissão CONTROL SERVER, também exigirá permissão CONTROL SERVER ao fazer as seguintes alterações:

  • Redefinindo a senha sem fornecer a senha antiga.
  • Habilitando MUST_CHANGE, CHECK_POLICY ou CHECK_EXPIRATION.
  • Alterando o nome de logon.
  • Habilitar ou desabilitar o logon.
  • Mapeando o logon 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 logon.

Exemplos

Esses exemplos também incluem exemplos para usar outros produtos SQL. Veja quais argumentos anteriores têm suporte.

Um. Habilitar um logon desabilitado

O exemplo a seguir habilita o logon Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Alterar a senha de um logon

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

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

C. Alterar o nome de um logon

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

ALTER LOGIN Mary5 WITH NAME = John2;

D. Mapear um logon para uma credencial

O exemplo a seguir mapeia o John2 de logon para o Custodian04de credenciais.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Mapear um logon para uma credencial de Gerenciamento extensível de chaves

O exemplo a seguir mapeia o Mary5 de logon 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 logon

Para desbloquear um logon do 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 política de verificação e, em seguida, ative novamente.

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;

ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;
GO

G. Alterar a senha de um logon usando HASHED

O exemplo a seguir altera a senha do logon 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