Condividi tramite


ALTER LOGIN (Transact-SQL)

Modifica le proprietà di un account di accesso di SQL Server.

Transact-SQL convenzioni di sintassi

Nota

ID Di Microsoft Entra era precedentemente noto come Azure Active Directory (Azure AD).

Selezionare un prodotto

Nella riga seguente selezionare il nome del prodotto a cui si è interessati e vengono visualizzate solo le informazioni del prodotto.

* SQL Server *  

del database SQL

dell'istanza gestita di SQL

Azure Synapse
di analisi

Analytics Platform
di sistema (PDW)

 

SQL Server

Sintassi per 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

Argomenti

login_name

Specifica il nome dell'account di accesso di SQL Server da modificare. Gli account di accesso al dominio devono essere racchiusi tra parentesi quadre nel formato [<domain>\<user>].

ENABLE | DISABILITARE

Abilita o disabilita questo account di accesso. La disabilitazione di un account di accesso non influisce sul comportamento degli account di accesso già connessi. Usare l'istruzione KILL per terminare una connessione esistente. Gli account di accesso disabilitati mantengono le relative autorizzazioni e possono comunque essere rappresentati.

PASSWORD = 'password'

Si applica solo agli account di accesso di SQL Server. Specifica la password per l'account di accesso da modificare. Le password fanno distinzione tra maiuscole e minuscole.

PASSWORD = hashed_password

Si applica solo alla parola chiave HASHED. Specifica il valore con hash della password per l'account di accesso che viene creato.

Importante

Quando un account di accesso (o un utente di database indipendente) si connette e viene autenticato, la connessione memorizza nella cache le informazioni sull'identità relative all'account di accesso. Per un account di accesso con autenticazione di Windows, sono incluse informazioni sull'appartenenza ai gruppi di Windows. L'identità dell'account di accesso rimane autenticata finché la connessione viene mantenuta. Per forzare le modifiche apportate all'identità, ad esempio la reimpostazione della password o la modifica dell'appartenenza al gruppo di Windows, l'account di accesso deve disconnettersi dall'autorità di autenticazione (Windows o SQL Server) e accedere di nuovo. Un membro del sysadmin ruolo predefinito del server o qualsiasi account di accesso con l'autorizzazione ALTER ANY CONNECTION può usare il comando KILL per terminare una connessione e forzare la riconnessione di un account di accesso. SQL Server Management Studio può riutilizzare le informazioni di connessione quando si aprono più connessioni alle finestre Esplora oggetti e Editor di query. Chiudere tutte le connessioni per forzare la riconnessione.

HASH

Si applica solo agli account di accesso di SQL Server. Specifica che la password immessa dopo che l'argomento PASSWORD è già sottoposto a hashing. Se questa opzione non è selezionata, la password viene sottoposta a hashing prima di essere archiviata nel database. Questa opzione deve essere usata solo per la sincronizzazione dell'accesso tra due server. Non usare l'opzione HASHED per modificare regolarmente le password.

OLD_PASSWORD = 'old_password'

Si applica solo agli account di accesso di SQL Server. Password corrente dell'account di accesso a cui verrà assegnata una nuova password. Le password fanno distinzione tra maiuscole e minuscole.

MUST_CHANGE

Si applica solo agli account di accesso di SQL Server. Se questa opzione è inclusa, SQL Server richiede una password aggiornata la prima volta che viene usato l'account di accesso modificato.

DEFAULT_DATABASE = database

Specifica un database predefinito da assegnare all'account di accesso.

DEFAULT_LANGUAGE = lingua

Specifica una lingua predefinita da assegnare all'account di accesso. La lingua predefinita per tutti gli account di accesso al database SQL è inglese e non può essere modificata. La lingua predefinita dell'account di accesso sa in SQL Server in Linux è l'inglese, ma può essere modificata.

NAME = login_name

Nuovo nome dell'account di accesso da rinominare. Se si tratta di un account di accesso di Windows, il SID dell'entità di Windows corrispondente al nuovo nome deve corrispondere al SID associato all'account di accesso in SQL Server. Il nuovo nome di un account di accesso di SQL Server non può contenere un carattere barra rovesciata (\).

CHECK_EXPIRATION = { ON | OFF }

Si applica solo agli account di accesso di SQL Server. Specifica se i criteri di scadenza della password devono essere applicati all'account di accesso. Il valore predefinito è OFF.

CHECK_POLICY = { ON | OFF }

Si applica solo agli account di accesso di SQL Server. Specifica che i criteri password di Windows del computer in cui è in esecuzione SQL Server devono essere applicati a questo account di accesso. Il valore predefinito è ON.

CREDENTIAL = credential_name

Nome di una credenziale di cui eseguire il mapping a un account di accesso di SQL Server. Le credenziali devono già esistere nel server. Per altre informazioni, vedere Credentials. Non è possibile eseguire il mapping di credenziali all'account di accesso sa.

NESSUNA CREDENZIALE

Rimuove qualsiasi mapping esistente dell'account di accesso a una credenziale del server. Per altre informazioni, vedere Credentials.

APRIRE

Si applica solo agli account di accesso di SQL Server. Specifica che un account di accesso bloccato deve essere sbloccato.

ADD CREDENTIAL

Aggiunge una credenziale del provider EKM (Extensible Key Management) all'account di accesso. Per altre informazioni, vedere EKM (Extensible Key Management).

DROP CREDENTIAL

Rimuove una credenziale del provider EKM (Extensible Key Management) dall'account di accesso. Per altre informazioni, vedere [Extensible Key Management (EKM)] (.. /.. /relational-databases/security/encryption/extensible-key-management-ekm.md).

Osservazioni

Quando CHECK_POLICY è impostato su ON, non è possibile usare l'argomento HASHED.

Quando CHECK_POLICY viene modificato in ON, si verifica il comportamento seguente:

  • La cronologia delle password viene inizializzata con il valore dell'hash della password corrente.

Quando CHECK_POLICY viene impostato su OFF, si verifica il comportamento seguente:

  • CHECK_EXPIRATION è impostato anche su OFF.
  • La cronologia delle password viene cancellata.
  • Il valore di lockout_time viene reimpostato.

Se si specifica MUST_CHANGE, CHECK_EXPIRATION e CHECK_POLICY devono essere impostati su ON. In caso contrario, l'istruzione ha esito negativo.

Se CHECK_POLICY è impostato su OFF, CHECK_EXPIRATION non può essere impostato su ON. Un'istruzione ALTER LOGIN con questa combinazione di opzioni ha esito negativo.

Non è possibile usare ALTER LOGIN con l'argomento DISABLE per negare l'accesso a un gruppo di Windows. Ad esempio, ALTER LOGIN [<domain>\<group>] DISABLE restituisce il messaggio di errore seguente:

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

Questo è per impostazione predefinita.

Nel database SQL i dati di accesso necessari per autenticare una connessione e le regole del firewall a livello di server vengono memorizzati temporaneamente nella cache in ogni database. Questa cache viene aggiornata periodicamente. Per forzare un aggiornamento della cache di autenticazione e assicurarsi che un database abbia la versione più recente della tabella degli account di accesso, eseguire DBCC FLUSHAUTHCACHE.

Autorizzazioni

È richiesta l'autorizzazione ALTER ANY LOGIN.

Se viene usata l'opzione CREDENTIAL, è necessaria anche l'autorizzazione ALTER ANY CREDENTIAL.

Se l'account di accesso da modificare è membro del sysadmin ruolo predefinito del server o di un utente autorizzato dell'autorizzazione CONTROL SERVER, è necessaria anche l'autorizzazione CONTROL SERVER quando si apportano le modifiche seguenti:

  • Reimpostazione della password senza specificare la vecchia password.
  • Abilitazione di MUST_CHANGE, CHECK_POLICY o CHECK_EXPIRATION.
  • Modifica del nome dell'account di accesso.
  • Abilitazione o disabilitazione dell'account di accesso.
  • Mapping dell'account di accesso a credenziali diverse.

Un'entità può modificare la password, la lingua predefinita e il database predefinito per il proprio account di accesso.

Esempi

Un. Abilitare un account di accesso disabilitato

Nell'esempio seguente viene abilitato l'account di accesso Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Modificare la password di un account di accesso

Nell'esempio seguente viene modificata la password del Mary5 di accesso a una password complessa.

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

C. Modificare la password di un account di accesso quando si è connessi come account di accesso

Se si sta tentando di modificare la password dell'account di accesso attualmente connesso e non si dispone dell'autorizzazione ALTER ANY LOGIN è necessario specificare l'opzione OLD_PASSWORD.

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

D. Modificare il nome di un account di accesso

Nell'esempio seguente il nome del Mary5 di accesso viene modificato in John2.

ALTER LOGIN Mary5 WITH NAME = John2;

E. Eseguire il mapping di un account di accesso a una credenziale

Nell'esempio seguente viene eseguito il mapping del John2 di accesso alla credenziale Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

F. Eseguire il mapping di un account di accesso a una credenziale di Extensible Key Management

Nell'esempio seguente viene eseguito il mapping del Mary5 di accesso alla credenziale EKM EKMProvider1.

ALTER LOGIN Mary5 ADD CREDENTIAL EKMProvider1;
GO

F. Sbloccare un account di accesso

Per sbloccare un account di accesso di SQL Server, eseguire l'istruzione seguente, sostituendo **** con la password dell'account desiderata.

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

Per sbloccare un account di accesso senza modificare la password, disattivare il criterio di controllo e quindi riattivarlo.

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

G. Modificare la password di un account di accesso usando HASHED

Nell'esempio seguente la password dell'account di accesso TestUser viene modificata in un valore già con hash.

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO

* Database SQL *

dell'istanza gestita di SQL

Azure Synapse
di analisi

Analytics Platform
di sistema (PDW)

 

SQL Database

Sintassi per il database SQL di 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

Argomenti

login_name

Specifica il nome dell'account di accesso di SQL Server da modificare. Gli account di accesso al dominio devono essere racchiusi tra parentesi quadre nel formato [dominio\utente].

ENABLE | DISABILITARE

Abilita o disabilita questo account di accesso. La disabilitazione di un account di accesso non influisce sul comportamento degli account di accesso già connessi. Usare l'istruzione KILL per terminare una connessione esistente. Gli account di accesso disabilitati mantengono le relative autorizzazioni e possono comunque essere rappresentati.

PASSWORD = 'password'

Si applica solo agli account di accesso di SQL Server. Specifica la password per l'account di accesso da modificare. Le password fanno distinzione tra maiuscole e minuscole.

Le connessioni continuamente attive al database SQL richiedono la riautorizzazione (eseguita dal motore di database) almeno ogni 10 ore. Il motore di database tenta di riautorizzare usando la password originariamente inviata e non è necessario alcun input dell'utente. Per motivi di prestazioni, quando una password viene reimpostata nel database SQL, la connessione non viene riautenticata, anche se la connessione viene reimpostata a causa del pool di connessioni. Questo comportamento è diverso dal comportamento di SQL Server locale. Se la password è stata modificata dopo l'autorizzazione iniziale della connessione, la connessione deve essere terminata e una nuova connessione effettuata usando la nuova password. Un utente con l'autorizzazione KILL DATABASE CONNECTION può terminare in modo esplicito una connessione al database SQL usando il comando KILL. Per altre informazioni, vedere KILL.

Importante

Quando un account di accesso (o un utente di database indipendente) si connette e viene autenticato, la connessione memorizza nella cache le informazioni sull'identità relative all'account di accesso. Per un account di accesso con autenticazione di Windows, sono incluse informazioni sull'appartenenza ai gruppi di Windows. L'identità dell'account di accesso rimane autenticata finché la connessione viene mantenuta. Per forzare le modifiche apportate all'identità, ad esempio la reimpostazione della password o la modifica dell'appartenenza al gruppo di Windows, l'account di accesso deve disconnettersi dall'autorità di autenticazione (Windows o SQL Server) e accedere di nuovo. Un membro dell'sysadmin ruolo predefinito del server o qualsiasi account di accesso con l'autorizzazione ALTER ANY CONNECTION può usare il comando KILL per terminare una connessione e forzare la riconnessione di un account di accesso. SQL Server Management Studio può riutilizzare le informazioni di connessione quando si aprono più connessioni alle finestre Esplora oggetti e Editor di query. Chiudere tutte le connessioni per forzare la riconnessione.

OLD_PASSWORD = 'old_password'

Si applica solo agli account di accesso di SQL Server. Password corrente dell'account di accesso a cui verrà assegnata una nuova password. Le password fanno distinzione tra maiuscole e minuscole.

NAME = login_name

Nuovo nome dell'account di accesso da rinominare. Se si tratta di un account di accesso di Windows, il SID dell'entità di Windows corrispondente al nuovo nome deve corrispondere al SID associato all'account di accesso in SQL Server. Il nuovo nome di un account di accesso di SQL Server non può contenere un carattere barra rovesciata (\).

Osservazioni

Nel database SQL i dati di accesso necessari per autenticare una connessione e le regole del firewall a livello di server vengono memorizzati temporaneamente nella cache in ogni database. Questa cache viene aggiornata periodicamente. Per forzare un aggiornamento della cache di autenticazione e assicurarsi che un database abbia la versione più recente della tabella degli account di accesso, eseguire DBCC FLUSHAUTHCACHE.

Autorizzazioni

È richiesta l'autorizzazione ALTER ANY LOGIN.

Se l'account di accesso da modificare è membro del sysadmin ruolo predefinito del server o di un utente autorizzato dell'autorizzazione CONTROL SERVER, è necessaria anche l'autorizzazione CONTROL SERVER quando si apportano le modifiche seguenti:

  • Reimpostazione della password senza specificare la vecchia password.
  • Modifica del nome dell'account di accesso.
  • Abilitazione o disabilitazione dell'account di accesso.
  • Mapping dell'account di accesso a credenziali diverse.

Un'entità può modificare la password per il proprio account di accesso.

Esempi

Questi esempi includono anche esempi per l'uso di altri prodotti SQL. Vedere quali argomenti precedenti sono supportati.

Un. Abilitare un account di accesso disabilitato

Nell'esempio seguente viene abilitato l'account di accesso Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Modificare la password di un account di accesso

Nell'esempio seguente viene modificata la password del Mary5 di accesso a una password complessa.

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

C. Modificare il nome di un account di accesso

Nell'esempio seguente il nome del Mary5 di accesso viene modificato in John2.

ALTER LOGIN Mary5 WITH NAME = John2;

D. Eseguire il mapping di un account di accesso a una credenziale

Nell'esempio seguente viene eseguito il mapping del John2 di accesso alla credenziale Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Eseguire il mapping di un account di accesso a una credenziale di Extensible Key Management

Nell'esempio seguente viene eseguito il mapping del Mary5 di accesso alla credenziale EKM EKMProvider1.

si applica a: SQL Server 2008 (10.0.x) e versioni successive.

ALTER LOGIN Mary5 ADD CREDENTIAL EKMProvider1;
GO

F. Modificare la password di un account di accesso usando HASHED

Nell'esempio seguente la password dell'account di accesso TestUser viene modificata in un valore già con hash.

si applica a: SQL Server 2008 (10.0.x) e versioni successive.

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO

del database SQL

* Istanza gestita di SQL *

Azure Synapse
di analisi

Analytics Platform
di sistema (PDW)

 

Istanza gestita di SQL di Azure

Sintassi per SQL Server e Istanza gestita di SQL di 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

Argomenti

Argomenti applicabili agli account di accesso sql e Microsoft Entra

login_name

Specifica il nome dell'account di accesso di SQL Server da modificare. Gli account di accesso di Microsoft Entra devono essere specificati come user@domain. Ad esempio, john.smith@contoso.como come nome del gruppo o dell'applicazione Microsoft Entra. Per gli account di accesso di Microsoft Entra, il login_name deve corrispondere a un account di accesso Microsoft Entra esistente creato nel database master.

ENABLE | DISABILITARE

Abilita o disabilita questo account di accesso. La disabilitazione di un account di accesso non influisce sul comportamento degli account di accesso già connessi. Usare l'istruzione KILL per terminare una connessione esistente. Gli account di accesso disabilitati mantengono le relative autorizzazioni e possono comunque essere rappresentati.

DEFAULT_DATABASE = database

Specifica un database predefinito da assegnare all'account di accesso.

DEFAULT_LANGUAGE = lingua

Specifica una lingua predefinita da assegnare all'account di accesso. La lingua predefinita per tutti gli account di accesso al database SQL è inglese e non può essere modificata. La lingua predefinita dell'account di accesso sa in SQL Server in Linux è l'inglese, ma può essere modificata.

Argomenti applicabili solo agli account di accesso SQL

PASSWORD = 'password'

Si applica solo agli account di accesso di SQL Server. Specifica la password per l'account di accesso da modificare. Le password fanno distinzione tra maiuscole e minuscole. Le password non si applicano anche quando vengono usate con account di accesso esterni, ad esempio gli account di accesso di Microsoft Entra.

Le connessioni continuamente attive al database SQL richiedono la riautorizzazione (eseguita dal motore di database) almeno ogni 10 ore. Il motore di database tenta di riautorizzare usando la password originariamente inviata e non è necessario alcun input dell'utente. Per motivi di prestazioni, quando una password viene reimpostata nel database SQL, la connessione non viene riautenticata, anche se la connessione viene reimpostata a causa del pool di connessioni. Questo comportamento è diverso dal comportamento di SQL Server locale. Se la password è stata modificata dopo l'autorizzazione iniziale della connessione, la connessione deve essere terminata e una nuova connessione effettuata usando la nuova password. Un utente con l'autorizzazione KILL DATABASE CONNECTION può terminare in modo esplicito una connessione al database SQL usando il comando KILL. Per altre informazioni, vedere KILL.

PASSWORD = hashed_password

Si applica solo alla parola chiave HASHED. Specifica il valore con hash della password per l'account di accesso che viene creato.

HASH

Si applica solo agli account di accesso di SQL Server. Specifica che la password immessa dopo che l'argomento PASSWORD è già sottoposto a hashing. Se questa opzione non è selezionata, la password viene sottoposta a hashing prima di essere archiviata nel database. Questa opzione deve essere usata solo per la sincronizzazione dell'accesso tra due server. Non usare l'opzione HASHED per modificare regolarmente le password.

OLD_PASSWORD = 'old_password'

Si applica solo agli account di accesso di SQL Server. Password corrente dell'account di accesso a cui verrà assegnata una nuova password. Le password fanno distinzione tra maiuscole e minuscole.

MUST_CHANGE

Si applica solo agli account di accesso di SQL Server. Se questa opzione è inclusa, SQL Server richiede una password aggiornata la prima volta che viene usato l'account di accesso modificato.

NAME = login_name

Nuovo nome dell'account di accesso da rinominare. Se l'account di accesso è un account di accesso di Windows, il SID dell'entità di Windows corrispondente al nuovo nome deve corrispondere al SID associato all'account di accesso in SQL Server. Il nuovo nome di un account di accesso di SQL Server non può contenere un carattere barra rovesciata (\).

CHECK_EXPIRATION = { ON | OFF }

Si applica solo agli account di accesso di SQL Server. Specifica se i criteri di scadenza della password devono essere applicati all'account di accesso. Il valore predefinito è OFF.

CHECK_POLICY = { ON | OFF }

Si applica solo agli account di accesso di SQL Server. Specifica che i criteri password di Windows del computer in cui è in esecuzione SQL Server devono essere applicati a questo account di accesso. Il valore predefinito è ON.

CREDENTIAL = credential_name

Nome di una credenziale di cui eseguire il mapping a un account di accesso di SQL Server. Le credenziali devono già esistere nel server. Per altre informazioni, vedere Credentials. Non è possibile eseguire il mapping di credenziali all'account di accesso sa.

NESSUNA CREDENZIALE

Rimuove qualsiasi mapping esistente dell'account di accesso a una credenziale del server. Per altre informazioni, vedere Credentials.

APRIRE

Si applica solo agli account di accesso di SQL Server. Specifica che un account di accesso bloccato deve essere sbloccato.

ADD CREDENTIAL

Aggiunge una credenziale del provider EKM (Extensible Key Management) all'account di accesso. Per altre informazioni, vedere EKM (Extensible Key Management).

DROP CREDENTIAL

Rimuove una credenziale del provider EKM (Extensible Key Management) dall'account di accesso. Per altre informazioni, vedere EKM (Extensible Key Management).

Osservazioni

Quando CHECK_POLICY è impostato su ON, non è possibile usare l'argomento HASHED.

Quando CHECK_POLICY viene modificato in ON, si verifica il comportamento seguente:

  • La cronologia delle password viene inizializzata con il valore dell'hash della password corrente.

Quando CHECK_POLICY viene impostato su OFF, si verifica il comportamento seguente:

  • CHECK_EXPIRATION è impostato anche su OFF.
  • La cronologia delle password viene cancellata.
  • Il valore di lockout_time viene reimpostato.

Se si specifica MUST_CHANGE, CHECK_EXPIRATION e CHECK_POLICY devono essere impostati su ON. In caso contrario, l'istruzione ha esito negativo.

Se CHECK_POLICY è impostato su OFF, CHECK_EXPIRATION non può essere impostato su ON. Un'istruzione ALTER LOGIN con questa combinazione di opzioni ha esito negativo.

Non è possibile usare ALTER_LOGIN con l'argomento DISABLE per negare l'accesso a un gruppo di Windows. Questo è per impostazione predefinita. Ad esempio, ALTER_LOGIN [domain\group] DISABLE restituisce il messaggio di errore seguente:

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

Nel database SQL i dati di accesso necessari per autenticare una connessione e le regole del firewall a livello di server vengono memorizzati temporaneamente nella cache in ogni database. Questa cache viene aggiornata periodicamente. Per forzare un aggiornamento della cache di autenticazione e assicurarsi che un database abbia la versione più recente della tabella degli account di accesso, eseguire DBCC FLUSHAUTHCACHE.

Autorizzazioni

È richiesta l'autorizzazione ALTER ANY LOGIN.

Se viene usata l'opzione CREDENTIAL, è necessaria anche l'autorizzazione ALTER ANY CREDENTIAL.

Se l'account di accesso da modificare è membro del sysadmin ruolo predefinito del server o di un utente autorizzato dell'autorizzazione CONTROL SERVER, è necessaria anche l'autorizzazione CONTROL SERVER quando si apportano le modifiche seguenti:

  • Reimpostazione della password senza specificare la vecchia password.
  • Abilitazione di MUST_CHANGE, CHECK_POLICY o CHECK_EXPIRATION.
  • Modifica del nome dell'account di accesso.
  • Abilitazione o disabilitazione dell'account di accesso.
  • Mapping dell'account di accesso a credenziali diverse.

Un'entità può modificare la password, la lingua predefinita e il database predefinito per il proprio account di accesso.

Solo un'entità SQL con privilegi sysadmin può eseguire un comando ALTER LOGIN su un account di accesso di Microsoft Entra.

Esempi

Questi esempi includono anche esempi per l'uso di altri prodotti SQL. Vedere quali argomenti precedenti sono supportati.

Un. Abilitare un account di accesso disabilitato

Nell'esempio seguente viene abilitato l'account di accesso Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Modificare la password di un account di accesso

Nell'esempio seguente viene modificata la password del Mary5 di accesso a una password complessa.

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

C. Modificare il nome di un account di accesso

Nell'esempio seguente il nome del Mary5 di accesso viene modificato in John2.

ALTER LOGIN Mary5 WITH NAME = John2;

D. Eseguire il mapping di un account di accesso a una credenziale

Nell'esempio seguente viene eseguito il mapping del John2 di accesso alla credenziale Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Eseguire il mapping di un account di accesso a una credenziale di Extensible Key Management

Nell'esempio seguente viene eseguito il mapping del Mary5 di accesso alla credenziale EKM EKMProvider1.

si applica a: SQL Server 2008 (10.0.x) e versioni successive e Istanza gestita di SQL di Azure.

ALTER LOGIN Mary5 ADD CREDENTIAL EKMProvider1;
GO

F. Sbloccare un account di accesso

Per sbloccare un account di accesso di SQL Server, eseguire l'istruzione seguente, sostituendo **** con la password dell'account desiderata.

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

Per sbloccare un account di accesso senza modificare la password, disattivare il criterio di controllo e quindi riattivarlo.

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;

ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;
GO

G. Modificare la password di un account di accesso usando HASHED

Nell'esempio seguente la password dell'account di accesso TestUser viene modificata in un valore già con hash.

si applica a: SQL Server 2008 (10.0.x) e versioni successive e Istanza gestita di SQL di Azure.

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO

H. Disabilitare l'accesso di un utente di Microsoft Entra

Nell'esempio seguente viene disabilitato l'accesso di un utente di Microsoft Entra joe@contoso.com.

ALTER LOGIN [joe@contoso.com] DISABLE;

del database SQL

dell'istanza gestita di SQL

* Azure Synapse
Analisi *

Analytics Platform
di sistema (PDW)

 

Azure Synapse Analytics

Sintassi per 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

Argomenti

login_name

Specifica il nome dell'account di accesso di SQL Server da modificare. Gli account di accesso al dominio devono essere racchiusi tra parentesi quadre nel formato [dominio\utente].

ENABLE | DISABILITARE

Abilita o disabilita questo account di accesso. La disabilitazione di un account di accesso non influisce sul comportamento degli account di accesso già connessi. Usare l'istruzione KILL per terminare una connessione esistente. Gli account di accesso disabilitati mantengono le relative autorizzazioni e possono comunque essere rappresentati.

PASSWORD = 'password'

Si applica solo agli account di accesso di SQL Server. Specifica la password per l'account di accesso da modificare. Le password fanno distinzione tra maiuscole e minuscole.

Le connessioni continuamente attive al database SQL richiedono la riautorizzazione (eseguita dal motore di database) almeno ogni 10 ore. Il motore di database tenta di riautorizzare usando la password originariamente inviata e non è necessario alcun input dell'utente. Per motivi di prestazioni, quando una password viene reimpostata nel database SQL, la connessione non viene riautenticata, anche se la connessione viene reimpostata a causa del pool di connessioni. Questo comportamento è diverso dal comportamento di SQL Server locale. Se la password è stata modificata dopo l'autorizzazione iniziale della connessione, la connessione deve essere terminata e una nuova connessione effettuata usando la nuova password. Un utente con l'autorizzazione KILL DATABASE CONNECTION può terminare in modo esplicito una connessione al database SQL usando il comando KILL. Per altre informazioni, vedere KILL.

Importante

Quando un account di accesso (o un utente di database indipendente) si connette e viene autenticato, la connessione memorizza nella cache le informazioni sull'identità relative all'account di accesso. Per un account di accesso con autenticazione di Windows, sono incluse informazioni sull'appartenenza ai gruppi di Windows. L'identità dell'account di accesso rimane autenticata finché la connessione viene mantenuta. Per forzare le modifiche apportate all'identità, ad esempio la reimpostazione della password o la modifica dell'appartenenza al gruppo di Windows, l'account di accesso deve disconnettersi dall'autorità di autenticazione (Windows o SQL Server) e accedere di nuovo. Un membro dell'sysadmin ruolo predefinito del server o qualsiasi account di accesso con l'autorizzazione ALTER ANY CONNECTION può usare il comando KILL per terminare una connessione e forzare la riconnessione di un account di accesso. SQL Server Management Studio può riutilizzare le informazioni di connessione quando si aprono più connessioni alle finestre Esplora oggetti e Editor di query. Chiudere tutte le connessioni per forzare la riconnessione.

OLD_PASSWORD = 'old_password'

Si applica solo agli account di accesso di SQL Server. Password corrente dell'account di accesso a cui verrà assegnata una nuova password. Le password fanno distinzione tra maiuscole e minuscole.

NAME = login_name

Nuovo nome dell'account di accesso da rinominare. Se si tratta di un account di accesso di Windows, il SID dell'entità di Windows corrispondente al nuovo nome deve corrispondere al SID associato all'account di accesso in SQL Server. Il nuovo nome di un account di accesso di SQL Server non può contenere un carattere barra rovesciata (\).

Osservazioni

Nel database SQL i dati di accesso necessari per autenticare una connessione e le regole del firewall a livello di server vengono memorizzati temporaneamente nella cache in ogni database. Questa cache viene aggiornata periodicamente. Per forzare un aggiornamento della cache di autenticazione e assicurarsi che un database abbia la versione più recente della tabella degli account di accesso, eseguire DBCC FLUSHAUTHCACHE.

Autorizzazioni

È richiesta l'autorizzazione ALTER ANY LOGIN.

Se l'account di accesso da modificare è membro del sysadmin ruolo predefinito del server o di un utente autorizzato dell'autorizzazione CONTROL SERVER, è necessaria anche l'autorizzazione CONTROL SERVER quando si apportano le modifiche seguenti:

  • Reimpostazione della password senza specificare la vecchia password.
  • Modifica del nome dell'account di accesso.
  • Abilitazione o disabilitazione dell'account di accesso.
  • Mapping dell'account di accesso a credenziali diverse.

Un'entità può modificare la password per il proprio account di accesso.

Esempi

Questi esempi includono anche esempi per l'uso di altri prodotti SQL. Vedere quali argomenti precedenti sono supportati.

Un. Abilitare un account di accesso disabilitato

Nell'esempio seguente viene abilitato l'account di accesso Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Modificare la password di un account di accesso

Nell'esempio seguente viene modificata la password del Mary5 di accesso a una password complessa.

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

C. Modificare il nome di un account di accesso

Nell'esempio seguente il nome del Mary5 di accesso viene modificato in John2.

ALTER LOGIN Mary5 WITH NAME = John2;

D. Eseguire il mapping di un account di accesso a una credenziale

Nell'esempio seguente viene eseguito il mapping del John2 di accesso alla credenziale Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Eseguire il mapping di un account di accesso a una credenziale di Extensible Key Management

Nell'esempio seguente viene eseguito il mapping del Mary5 di accesso alla credenziale EKM EKMProvider1.

si applica a: SQL Server 2008 (10.0.x) e versioni successive.

ALTER LOGIN Mary5 ADD CREDENTIAL EKMProvider1;
GO

F. Sbloccare un account di accesso

Per sbloccare un account di accesso di SQL Server, eseguire l'istruzione seguente, sostituendo **** con la password dell'account desiderata.

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

G. Modificare la password di un account di accesso usando HASHED

Nell'esempio seguente la password dell'account di accesso TestUser viene modificata in un valore già con hash.

si applica a: SQL Server 2008 (10.0.x) e versioni successive.

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO

del database SQL

dell'istanza gestita di SQL

Azure Synapse
di analisi

* Analytics
Platform System (PDW) *

 

Sistema della piattaforma di analisi

Sintassi per il sistema della piattaforma di analisi

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

Argomenti

login_name

Specifica il nome dell'account di accesso di SQL Server da modificare. Gli account di accesso al dominio devono essere racchiusi tra parentesi quadre nel formato [dominio\utente].

ENABLE | DISABILITARE

Abilita o disabilita questo account di accesso. La disabilitazione di un account di accesso non influisce sul comportamento degli account di accesso già connessi. Usare l'istruzione KILL per terminare una connessione esistente. Gli account di accesso disabilitati mantengono le relative autorizzazioni e possono comunque essere rappresentati.

PASSWORD = 'password'

Si applica solo agli account di accesso di SQL Server. Specifica la password per l'account di accesso da modificare. Le password fanno distinzione tra maiuscole e minuscole.

Importante

Quando un account di accesso (o un utente di database indipendente) si connette e viene autenticato, la connessione memorizza nella cache le informazioni sull'identità relative all'account di accesso. Per un account di accesso con autenticazione di Windows, sono incluse informazioni sull'appartenenza ai gruppi di Windows. L'identità dell'account di accesso rimane autenticata finché la connessione viene mantenuta. Per forzare le modifiche apportate all'identità, ad esempio la reimpostazione della password o la modifica dell'appartenenza al gruppo di Windows, l'account di accesso deve disconnettersi dall'autorità di autenticazione (Windows o SQL Server) e accedere di nuovo. Un membro dell'sysadmin ruolo predefinito del server o qualsiasi account di accesso con l'autorizzazione ALTER ANY CONNECTION può usare il comando KILL per terminare una connessione e forzare la riconnessione di un account di accesso. SQL Server Management Studio può riutilizzare le informazioni di connessione quando si aprono più connessioni alle finestre Esplora oggetti e Editor di query. Chiudere tutte le connessioni per forzare la riconnessione.

OLD_PASSWORD = 'old_password'

Si applica solo agli account di accesso di SQL Server. Password corrente dell'account di accesso a cui verrà assegnata una nuova password. Le password fanno distinzione tra maiuscole e minuscole.

MUST_CHANGE

Si applica solo agli account di accesso di SQL Server. Se questa opzione è inclusa, SQL Server richiede una password aggiornata la prima volta che viene usato l'account di accesso modificato.

NAME = login_name

Nuovo nome dell'account di accesso da rinominare. Se l'account di accesso è un account di accesso di Windows, il SID dell'entità di Windows corrispondente al nuovo nome deve corrispondere al SID associato all'account di accesso in SQL Server. Il nuovo nome di un account di accesso di SQL Server non può contenere un carattere barra rovesciata (\).

CHECK_EXPIRATION = { ON | OFF }

Si applica solo agli account di accesso di SQL Server. Specifica se i criteri di scadenza della password devono essere applicati all'account di accesso. Il valore predefinito è OFF.

CHECK_POLICY = { ON | OFF }

Si applica solo agli account di accesso di SQL Server. Specifica che i criteri password di Windows del computer in cui è in esecuzione SQL Server devono essere applicati a questo account di accesso. Il valore predefinito è ON.

APRIRE

Si applica solo agli account di accesso di SQL Server. Specifica che un account di accesso bloccato deve essere sbloccato.

Osservazioni

Quando CHECK_POLICY è impostato su ON, non è possibile usare l'argomento HASHED.

Quando CHECK_POLICY viene modificato in ON, si verifica il comportamento seguente:

  • La cronologia delle password viene inizializzata con il valore dell'hash della password corrente.

Quando CHECK_POLICY viene impostato su OFF, si verifica il comportamento seguente:

  • CHECK_EXPIRATION è impostato anche su OFF.
  • La cronologia delle password viene cancellata.
  • Il valore di lockout_time viene reimpostato.

Se si specifica MUST_CHANGE, CHECK_EXPIRATION e CHECK_POLICY devono essere impostati su ON. In caso contrario, l'istruzione ha esito negativo.

Se CHECK_POLICY è impostato su OFF, CHECK_EXPIRATION non può essere impostato su ON. Un'istruzione ALTER LOGIN con questa combinazione di opzioni ha esito negativo.

Non è possibile usare ALTER_LOGIN con l'argomento DISABLE per negare l'accesso a un gruppo di Windows. Questo è per impostazione predefinita. Ad esempio, ALTER_LOGIN [domain\group] DISABLE restituisce il messaggio di errore seguente:

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

Nel database SQL i dati di accesso necessari per autenticare una connessione e le regole del firewall a livello di server vengono memorizzati temporaneamente nella cache in ogni database. Questa cache viene aggiornata periodicamente. Per forzare un aggiornamento della cache di autenticazione e assicurarsi che un database abbia la versione più recente della tabella degli account di accesso, eseguire DBCC FLUSHAUTHCACHE.

Autorizzazioni

È richiesta l'autorizzazione ALTER ANY LOGIN.

Se viene usata l'opzione CREDENTIAL, è necessaria anche l'autorizzazione ALTER ANY CREDENTIAL.

Se l'account di accesso da modificare è membro del sysadmin ruolo predefinito del server o di un utente autorizzato dell'autorizzazione CONTROL SERVER, è necessaria anche l'autorizzazione CONTROL SERVER quando si apportano le modifiche seguenti:

  • Reimpostazione della password senza specificare la vecchia password.
  • Abilitazione di MUST_CHANGE, CHECK_POLICY o CHECK_EXPIRATION.
  • Modifica del nome dell'account di accesso.
  • Abilitazione o disabilitazione dell'account di accesso.
  • Mapping dell'account di accesso a credenziali diverse.

Un'entità può modificare la password, la lingua predefinita e il database predefinito per il proprio account di accesso.

Esempi

Questi esempi includono anche esempi per l'uso di altri prodotti SQL. Vedere quali argomenti precedenti sono supportati.

Un. Abilitare un account di accesso disabilitato

Nell'esempio seguente viene abilitato l'account di accesso Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Modificare la password di un account di accesso

Nell'esempio seguente viene modificata la password del Mary5 di accesso a una password complessa.

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

C. Modificare il nome di un account di accesso

Nell'esempio seguente il nome del Mary5 di accesso viene modificato in John2.

ALTER LOGIN Mary5 WITH NAME = John2;

D. Eseguire il mapping di un account di accesso a una credenziale

Nell'esempio seguente viene eseguito il mapping del John2 di accesso alla credenziale Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Eseguire il mapping di un account di accesso a una credenziale di Extensible Key Management

Nell'esempio seguente viene eseguito il mapping del Mary5 di accesso alla credenziale EKM EKMProvider1.

si applica a: SQL Server 2008 (10.0.x) e versioni successive.

ALTER LOGIN Mary5 ADD CREDENTIAL EKMProvider1;
GO

F. Sbloccare un account di accesso

Per sbloccare un account di accesso di SQL Server, eseguire l'istruzione seguente, sostituendo **** con la password dell'account desiderata.

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

Per sbloccare un account di accesso senza modificare la password, disattivare il criterio di controllo e quindi riattivarlo.

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;

ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;
GO

G. Modificare la password di un account di accesso usando HASHED

Nell'esempio seguente la password dell'account di accesso TestUser viene modificata in un valore già con hash.

si applica a: SQL Server 2008 (10.0.x) e versioni successive.

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO