ALTER LOGIN (Transact-SQL)

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

Convenzioni di sintassi Transact-SQL

Nota

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

Selezionare un prodotto

Nella riga seguente selezionare il nome del prodotto a cui si è interessati. Verranno visualizzate solo le informazioni per tale prodotto.

* SQL Server *  

 

SQL Server

Sintassi

-- Syntax for 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 per il dominio devono essere racchiusi tra parentesi nel formato [dominio\utente].

ENABLE | DISABLE 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 le connessioni esistenti. 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 che viene modificato. Per le password viene fatta distinzione tra maiuscole e minuscole.

PASSWORD =hashed_password Si applica solo alla parola chiave HASHED. Specifica il valore hash della password per l'account di accesso in fase di creazione.

Importante

Quando un account di accesso (o un utente di database indipendente) si connette e viene autenticato, tramite la connessione vengono memorizzate nella cache le informazioni relative all'identità sull'account di accesso. In caso di un account di accesso con l'autenticazione di Windows, sono incluse informazioni sull'appartenenza ai gruppi di Windows. L'identità dell'account di accesso rimane autenticata, a condizione che la connessione venga mantenuta. Per forzare le modifiche nell'identità, ad esempio una reimpostazione della password o una 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 ruolo predefinito del server sysadmin 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 ed Editor di query. Chiudere tutte le connessioni per forzare la riconnessione.

HASHED Si applica solo agli account di accesso SQL Server. Specifica che è già stato eseguito l'hashing per la password immessa dopo l'argomento PASSWORD. Se si include questa opzione, viene eseguito l'hashing della password prima che questa venga archiviata nel database. Questa opzione deve essere utilizzata solo per la sincronizzazione degli account di accesso tra due server. Non utilizzare l'opzione HASHED per le normali operazioni di modifica delle password.

OLD_PASSWORD ='oldpassword' Si applica solo agli account di accesso di SQL Server. Password corrente dell'account di accesso a cui verrà assegnata una nuova password. Per le password viene fatta distinzione tra maiuscole e minuscole.

MUST_CHANGE Si applica solo agli account di accesso di SQL Server. Se questa opzione è inclusa, SQL Server richiederà una password aggiornata quando l'account di accesso modificato viene usato per la prima volta.

DEFAULT_DATABASE =database specifica il database predefinito da assegnare all'account di accesso.

DEFAULT_LANGUAGE =language specifica la lingua predefinita da assegnare all'account di accesso. La lingua predefinita per tutti gli account di accesso dei database SQL è l'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 è il nuovo nome dell'account di accesso da rinominare. Se si tratta di un account di accesso di Windows, il SID dell'entità di sicurezza 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 una barra rovesciata (\).

CHECK_EXPIRATION = { ON | OFF } Si applica solo agli account di accesso di SQL Server. Specifica se i criteri di scadenza delle password devono essere applicati a questo 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. La credenziale deve già esistere nel server. Per altre informazioni, vedere Credenziali. Non è possibile eseguire il mapping di credenziali all'account di accesso sa.

NO CREDENTIAL rimuove gli eventuali mapping esistenti tra l'account di accesso e una credenziale del server. Per altre informazioni, vedere Credenziali.

UNLOCK 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 per l'account di accesso. Per altre informazioni, vedere Extensible Key Management (EKM).

DROP CREDENTIAL rimuove una credenziale del provider EKM 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 utilizzare l'argomento HASHED.

Quando si modifica l'opzione CHECK_POLICY impostandola su ON, si verifica il comportamento seguente:

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

    Quando si modifica l'opzione CHECK_POLICY impostandola su OFF, si ottengono le conseguenze seguenti:

  • Anche l'opzione CHECK_EXPIRATION viene impostata su OFF.

  • Viene cancellata la cronologia delle password.

  • Il valore di lockout_time viene reimpostato.

Se si specifica MUST_CHANGE, è necessario impostare CHECK_EXPIRATION e CHECK_POLICY su ON. In caso contrario, l'istruzione non verrà eseguita correttamente.

Se l'opzione CHECK_POLICY è impostata su OFF, non è possibile impostare CHECK_EXPIRATION su ON. Un'istruzione ALTER LOGIN che presenta questa combinazione di opzioni avrà 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 does not exist or you do not have permission."

Questo si verifica per motivi strutturali.

Nel database SQL i dati dell'account 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 di account di accesso, eseguire DBCC FLUSHAUTHCACHE.

Autorizzazioni

È richiesta l'autorizzazione ALTER ANY LOGIN.

Se viene utilizzata l'opzione CREDENTIAL, è richiesta anche l'autorizzazione ALTER ANY CREDENTIAL.

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

  • Reimpostazione della password senza specificare la vecchia password.
  • Attivazione di MUST_CHANGE, CHECK_POLICY o CHECK_EXPIRATION.
  • Modifica del nome dell'account di accesso.
  • Attivazione o disabilitazione dell'account di accesso.
  • Mapping dell'account di accesso a una diversa credenziale.

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

Esempi

R. Abilitazione di un account di accesso disabilitato

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

ALTER LOGIN Mary5 ENABLE;

B. Modifica della password di un account di accesso

Nell'esempio seguente viene modificata la password dell'account di accesso Mary5 in una password complessa.

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

C. Modifica della password di un account di accesso quando si è eseguito l'accesso con tale account

Se si tenta di modificare la password dell'account di accesso con cui si è attualmente connessi e non è disponibile l'autorizzazione ALTER ANY LOGIN, è necessario specificare l'opzione OLD_PASSWORD.

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

D. Modifica del nome di un account di accesso

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

ALTER LOGIN Mary5 WITH NAME = John2;

E. Mapping tra un account di accesso e una credenziale

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

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

F. Mapping di un account di accesso a una credenziale EKM

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

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

F. Sblocco di 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, disabilitare i criteri di controllo, quindi attivarli nuovamente.

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

G. Modifica della password di un account di accesso mediante HASHED

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

ALTER LOGIN TestUser WITH
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

Vedi anche

* Database SQL *

 

Database SQL

SQL Server

Sintassi

-- Syntax for Azure SQL Database

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

<status_option> ::=
    ENABLE | DISABLE

<set_option> ::=
    PASSWORD ='password'
    [
      OLD_PASSWORD ='oldpassword'
    ]
    | NAME = login_name

Argomenti

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

ENABLE | DISABLE 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 le connessioni esistenti. 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 che viene modificato. Per le password viene fatta distinzione tra maiuscole e minuscole.

Le connessioni continuamente attive a database SQL richiedono la riautorizzazione (eseguita dal motore di database) almeno ogni 10 ore. Il motore di database prova la riautorizzazione usando la password inviata originariamente e non richiede alcun input da parte dell'utente. Per motivi di prestazioni, quando si reimposta una password nel database SQL la connessione non viene nuovamente autenticata, anche se viene reimpostata a causa del pool di connessioni. Questo comportamento è diverso da quello dell'istanza locale di SQL Server. Se la password è stata cambiata dopo l'autorizzazione iniziale della connessione, è necessario terminare la connessione e stabilirne una nuova 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, tramite la connessione vengono memorizzate nella cache le informazioni relative all'identità sull'account di accesso. In caso di un account di accesso con l'autenticazione di Windows, sono incluse informazioni sull'appartenenza ai gruppi di Windows. L'identità dell'account di accesso rimane autenticata, a condizione che la connessione venga mantenuta. Per forzare le modifiche nell'identità, ad esempio una reimpostazione della password o una 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 ruolo predefinito del server sysadmin 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 ed Editor di query. Chiudere tutte le connessioni per forzare la riconnessione.

OLD_PASSWORD ='oldpassword' Si applica solo agli account di accesso di SQL Server. Password corrente dell'account di accesso a cui verrà assegnata una nuova password. Per le password viene fatta distinzione tra maiuscole e minuscole.

NAME = login_name è il nuovo nome dell'account di accesso da rinominare. Se si tratta di un account di accesso di Windows, il SID dell'entità di sicurezza 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 una barra rovesciata (\).

Osservazioni:

Nel database SQL i dati dell'account 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 di account di accesso, eseguire DBCC FLUSHAUTHCACHE.

Autorizzazioni

È richiesta l'autorizzazione ALTER ANY LOGIN.

Se l'account di accesso da modificare è un membro del ruolo predefinito del server sysadmin o un utente che dispone dell'autorizzazione CONTROL SERVER, è richiesta 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.
  • Attivazione o disabilitazione dell'account di accesso.
  • Mapping dell'account di accesso a una diversa credenziale.

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

Esempi

Sono inclusi anche alcuni esempi per l'uso di altri prodotti SQL. Verificare quali argomenti tra i precedenti sono supportati.

R. Abilitazione di un account di accesso disabilitato

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

ALTER LOGIN Mary5 ENABLE;

B. Modifica della password di un account di accesso

Nell'esempio seguente viene modificata la password dell'account di accesso Mary5 in una password complessa.

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

C. Modifica del nome di un account di accesso

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

ALTER LOGIN Mary5 WITH NAME = John2;

D. Mapping tra un account di accesso e una credenziale

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

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Mapping di un account di accesso a una credenziale EKM

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

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

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

F. Modifica della password di un account di accesso mediante HASHED

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

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

ALTER LOGIN TestUser WITH
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

Vedi anche

* Istanza gestita di SQL *

 

Istanza gestita di SQL di Azure

Sintassi

-- Syntax for SQL Server and Azure SQL Managed Instance

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 | DISABLE 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 il database predefinito da assegnare all'account di accesso.

DEFAULT_LANGUAGE =language specifica la lingua predefinita da assegnare all'account di accesso. La lingua predefinita per tutti gli account di accesso dei database SQL è l'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 che viene modificato. Per le password viene fatta 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 a database SQL richiedono la riautorizzazione (eseguita dal motore di database) almeno ogni 10 ore. Il motore di database prova la riautorizzazione usando la password inviata originariamente e non richiede alcun input da parte dell'utente. Per motivi di prestazioni, quando si reimposta una password nel database SQL la connessione non viene nuovamente autenticata, anche se viene reimpostata a causa del pool di connessioni. Questo comportamento è diverso da quello dell'istanza locale di SQL Server. Se la password è stata cambiata dopo l'autorizzazione iniziale della connessione, è necessario terminare la connessione e stabilirne una nuova 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 hash della password per l'account di accesso in fase di creazione.

HASHED Si applica solo agli account di accesso SQL Server. Specifica che è già stato eseguito l'hashing per la password immessa dopo l'argomento PASSWORD. Se si include questa opzione, viene eseguito l'hashing della password prima che questa venga archiviata nel database. Questa opzione deve essere utilizzata solo per la sincronizzazione degli account di accesso tra due server. Non utilizzare l'opzione HASHED per le normali operazioni di modifica delle password.

OLD_PASSWORD ='oldpassword' Si applica solo agli account di accesso di SQL Server. Password corrente dell'account di accesso a cui verrà assegnata una nuova password. Per le password viene fatta distinzione tra maiuscole e minuscole.

MUST_CHANGE
Si applica solo agli account di accesso di SQL Server. Se questa opzione è inclusa, SQL Server richiederà una password aggiornata quando l'account di accesso modificato viene usato per la prima volta.

NAME = login_name è il nuovo nome dell'account di accesso da rinominare. Se si tratta di un account di accesso di Windows, il SID dell'entità di sicurezza 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 una barra rovesciata (\).

CHECK_EXPIRATION = { ON | OFF } Si applica solo agli account di accesso di SQL Server. Specifica se i criteri di scadenza delle password devono essere applicati a questo 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. La credenziale deve già esistere nel server. Per altre informazioni, vedere Credenziali. Non è possibile eseguire il mapping di credenziali all'account di accesso sa.

NO CREDENTIAL rimuove gli eventuali mapping esistenti tra l'account di accesso e una credenziale del server. Per altre informazioni, vedere Credenziali.

UNLOCK 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 per l'account di accesso. Per altre informazioni, vedere Extensible Key Management (EKM).

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

Osservazioni:

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

Quando si modifica l'opzione CHECK_POLICY impostandola su ON, si verifica il comportamento seguente:

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

    Quando si modifica l'opzione CHECK_POLICY impostandola su OFF, si ottengono le conseguenze seguenti:

  • Anche l'opzione CHECK_EXPIRATION viene impostata su OFF.

  • Viene cancellata la cronologia delle password.

  • Il valore di lockout_time viene reimpostato.

Se si specifica MUST_CHANGE, è necessario impostare CHECK_EXPIRATION e CHECK_POLICY su ON. In caso contrario, l'istruzione non verrà eseguita correttamente.

Se l'opzione CHECK_POLICY è impostata su OFF, non è possibile impostare CHECK_EXPIRATION su ON. Un'istruzione ALTER LOGIN che presenta questa combinazione di opzioni avrà esito negativo.

Non è possibile utilizzare ALTER_LOGIN con l'argomento DISABLE per negare l'accesso a un gruppo di Windows. Questo si verifica per motivi strutturali. 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 does not exist or you do not have permission."

Nel database SQL i dati dell'account 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 di account di accesso, eseguire DBCC FLUSHAUTHCACHE.

Autorizzazioni

È richiesta l'autorizzazione ALTER ANY LOGIN.

Se viene utilizzata l'opzione CREDENTIAL, è richiesta anche l'autorizzazione ALTER ANY CREDENTIAL.

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

  • Reimpostazione della password senza specificare la vecchia password.
  • Attivazione di MUST_CHANGE, CHECK_POLICY o CHECK_EXPIRATION.
  • Modifica del nome dell'account di accesso.
  • Attivazione o disabilitazione dell'account di accesso.
  • Mapping dell'account di accesso a una diversa credenziale.

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

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

Esempi

Sono inclusi anche alcuni esempi per l'uso di altri prodotti SQL. Verificare quali argomenti tra i precedenti sono supportati.

R. Abilitazione di un account di accesso disabilitato

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

ALTER LOGIN Mary5 ENABLE;

B. Modifica della password di un account di accesso

Nell'esempio seguente viene modificata la password dell'account di accesso Mary5 in una password complessa.

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

C. Modifica del nome di un account di accesso

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

ALTER LOGIN Mary5 WITH NAME = John2;

D. Mapping tra un account di accesso e una credenziale

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

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Mapping di un account di accesso a una credenziale EKM

Nell'esempio seguente viene eseguito il mapping dell'account di accesso Mary5 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. Sblocco di 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, disabilitare i criteri di controllo, quindi attivarli nuovamente.

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

G. Modifica della password di un account di accesso mediante HASHED

Nell'esempio seguente viene modificata la password dell'account di accesso TestUser con un valore 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. Disabilitazione dell'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

Vedi anche

* Azure Synapse
Analytics *

 

Azure Synapse Analytics

Sintassi

-- Syntax for 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 per il dominio devono essere racchiusi tra parentesi nel formato [dominio\utente].

ENABLE | DISABLE 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 le connessioni esistenti. 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 che viene modificato. Per le password viene fatta distinzione tra maiuscole e minuscole.

Le connessioni continuamente attive a database SQL richiedono la riautorizzazione (eseguita dal motore di database) almeno ogni 10 ore. Il motore di database prova la riautorizzazione usando la password inviata originariamente e non richiede alcun input da parte dell'utente. Per motivi di prestazioni, quando si reimposta una password nel database SQL la connessione non viene nuovamente autenticata, anche se viene reimpostata a causa del pool di connessioni. Questo comportamento è diverso da quello dell'istanza locale di SQL Server. Se la password è stata cambiata dopo l'autorizzazione iniziale della connessione, è necessario terminare la connessione e stabilirne una nuova 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, tramite la connessione vengono memorizzate nella cache le informazioni relative all'identità sull'account di accesso. In caso di un account di accesso con l'autenticazione di Windows, sono incluse informazioni sull'appartenenza ai gruppi di Windows. L'identità dell'account di accesso rimane autenticata, a condizione che la connessione venga mantenuta. Per forzare le modifiche nell'identità, ad esempio una reimpostazione della password o una 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 ruolo predefinito del server sysadmin 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 ed Editor di query. Chiudere tutte le connessioni per forzare la riconnessione.

OLD_PASSWORD ='oldpassword' Si applica solo agli account di accesso di SQL Server. Password corrente dell'account di accesso a cui verrà assegnata una nuova password. Per le password viene fatta distinzione tra maiuscole e minuscole.

NAME = login_name è il nuovo nome dell'account di accesso da rinominare. Se si tratta di un account di accesso di Windows, il SID dell'entità di sicurezza 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 una barra rovesciata (\).

Osservazioni:

Nel database SQL i dati dell'account 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 di account di accesso, eseguire DBCC FLUSHAUTHCACHE.

Autorizzazioni

È richiesta l'autorizzazione ALTER ANY LOGIN.

Se l'account di accesso da modificare è un membro del ruolo predefinito del server sysadmin o un utente che dispone dell'autorizzazione CONTROL SERVER, è richiesta 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.
  • Attivazione o disabilitazione dell'account di accesso.
  • Mapping dell'account di accesso a una diversa credenziale.

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

Esempi

Sono inclusi anche alcuni esempi per l'uso di altri prodotti SQL. Verificare quali argomenti tra i precedenti sono supportati.

R. Abilitazione di un account di accesso disabilitato

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

ALTER LOGIN Mary5 ENABLE;

B. Modifica della password di un account di accesso

Nell'esempio seguente viene modificata la password dell'account di accesso Mary5 in una password complessa.

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

C. Modifica del nome di un account di accesso

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

ALTER LOGIN Mary5 WITH NAME = John2;

D. Mapping tra un account di accesso e una credenziale

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

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Mapping di un account di accesso a una credenziale EKM

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

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

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

F. Sblocco di 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. Modifica della password di un account di accesso mediante HASHED

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

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

ALTER LOGIN TestUser WITH
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

Vedi anche

* Piattaforma di strumenti
analitici (PDW) *

 

Sistema della piattaforma di analisi

Sintassi

-- Syntax for 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

Argomenti

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

ENABLE | DISABLE 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 che viene modificato. Per le password viene fatta distinzione tra maiuscole e minuscole.

Importante

Quando un account di accesso (o un utente di database indipendente) si connette e viene autenticato, tramite la connessione vengono memorizzate nella cache le informazioni relative all'identità sull'account di accesso. In caso di un account di accesso con l'autenticazione di Windows, sono incluse informazioni sull'appartenenza ai gruppi di Windows. L'identità dell'account di accesso rimane autenticata, a condizione che la connessione venga mantenuta. Per forzare le modifiche nell'identità, ad esempio una reimpostazione della password o una 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 ruolo predefinito del server sysadmin 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 ed Editor di query. Chiudere tutte le connessioni per forzare la riconnessione.

OLD_PASSWORD ='oldpassword' Si applica solo agli account di accesso di SQL Server. Password corrente dell'account di accesso a cui verrà assegnata una nuova password. Per le password viene fatta distinzione tra maiuscole e minuscole.

MUST_CHANGE Si applica solo agli account di accesso di SQL Server. Se questa opzione è inclusa, SQL Server richiederà una password aggiornata quando l'account di accesso modificato viene usato per la prima volta.

NAME = login_name è il nuovo nome dell'account di accesso da rinominare. Se si tratta di un account di accesso di Windows, il SID dell'entità di sicurezza 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 una barra rovesciata (\).

CHECK_EXPIRATION = { ON | OFF } Si applica solo agli account di accesso di SQL Server. Specifica se i criteri di scadenza delle password devono essere applicati a questo 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.

UNLOCK 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 utilizzare l'argomento HASHED.

Quando si modifica l'opzione CHECK_POLICY impostandola su ON, si verifica il comportamento seguente:

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

    Quando si modifica l'opzione CHECK_POLICY impostandola su OFF, si ottengono le conseguenze seguenti:

  • Anche l'opzione CHECK_EXPIRATION viene impostata su OFF.

  • Viene cancellata la cronologia delle password.

  • Il valore di lockout_time viene reimpostato.

Se si specifica MUST_CHANGE, è necessario impostare CHECK_EXPIRATION e CHECK_POLICY su ON. In caso contrario, l'istruzione non verrà eseguita correttamente.

Se l'opzione CHECK_POLICY è impostata su OFF, non è possibile impostare CHECK_EXPIRATION su ON. Un'istruzione ALTER LOGIN che presenta questa combinazione di opzioni avrà esito negativo.

Non è possibile utilizzare ALTER_LOGIN con l'argomento DISABLE per negare l'accesso a un gruppo di Windows. Questo si verifica per motivi strutturali. 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 does not exist or you do not have permission."

Nel database SQL i dati dell'account 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 di account di accesso, eseguire DBCC FLUSHAUTHCACHE.

Autorizzazioni

È richiesta l'autorizzazione ALTER ANY LOGIN.

Se viene utilizzata l'opzione CREDENTIAL, è richiesta anche l'autorizzazione ALTER ANY CREDENTIAL.

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

  • Reimpostazione della password senza specificare la vecchia password.
  • Attivazione di MUST_CHANGE, CHECK_POLICY o CHECK_EXPIRATION.
  • Modifica del nome dell'account di accesso.
  • Attivazione o disabilitazione dell'account di accesso.
  • Mapping dell'account di accesso a una diversa credenziale.

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

Esempi

Sono inclusi anche alcuni esempi per l'uso di altri prodotti SQL. Verificare quali argomenti tra i precedenti sono supportati.

R. Abilitazione di un account di accesso disabilitato

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

ALTER LOGIN Mary5 ENABLE;

B. Modifica della password di un account di accesso

Nell'esempio seguente viene modificata la password dell'account di accesso Mary5 in una password complessa.

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

C. Modifica del nome di un account di accesso

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

ALTER LOGIN Mary5 WITH NAME = John2;

D. Mapping tra un account di accesso e una credenziale

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

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Mapping di un account di accesso a una credenziale EKM

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

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

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

F. Sblocco di 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, disabilitare i criteri di controllo, quindi attivarli nuovamente.

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

G. Modifica della password di un account di accesso mediante HASHED

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

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

ALTER LOGIN TestUser WITH
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

Vedi anche