ALTER LOGIN (Transact-SQL)ALTER LOGIN (Transact-SQL)

Modifica le proprietà di un account di accesso di SQL ServerSQL Server.Changes the properties of a SQL ServerSQL Server login account.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQLTopic link icon Transact-SQL Syntax Conventions

Fare clic su un prodotto.Click a product!

Nella riga seguente fare clic su qualsiasi nome di prodotto.In the following row, click whichever product name you are interested in. Viene visualizzato contenuto diverso in questa pagina Web, appropriato per il prodotto su cui si fa clic.The click displays different content here on this webpage, appropriate for whichever product you click.

* SQL Server *  * SQL Server *   Database singolo/pool elastico
database SQL
SQL Database
single database/elastic pool
Istanza gestita
database SQL
SQL Database
managed instance
SQL Data
Warehouse
SQL Data
Warehouse
Piattaforma di strumenti
analitici (PDW)
Analytics Platform
System (PDW)

 

SQL ServerSQL Server

SintassiSyntax

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

ArgomentiArguments

login_name specifica il nome dell'account di accesso di SQL ServerSQL Server da modificare.login_name Specifies the name of the SQL ServerSQL Server login that is being changed. Gli account di accesso per il dominio devono essere racchiusi tra parentesi nel formato [dominio\utente].Domain logins must be enclosed in brackets in the format [domain\user].

ENABLE | DISABLE abilita o disabilita questo account di accesso.ENABLE | DISABLE Enables or disables this login. La disabilitazione di un account di accesso non influisce sul comportamento degli account di accesso già connessi.Disabling a login does not affect the behavior of logins that are already connected. (Usare l'istruzione KILL per terminare le connessioni esistenti.) Gli account di accesso disabilitati conservano le autorizzazioni e possono essere ancora rappresentati.(Use the KILL statement to terminate an existing connections.) Disabled logins retain their permissions and can still be impersonated.

PASSWORD =' password ' si applica solo agli account di accesso di SQL ServerSQL Server.PASSWORD ='password' Applies only to SQL ServerSQL Server logins. Specifica la password per l'account di accesso che viene modificato.Specifies the password for the login that is being changed. Per le password viene fatta distinzione tra maiuscole e minuscole.Passwords are case-sensitive.

PASSWORD = hashed_password si applica solo alle parole chiave HASHED.PASSWORD =hashed_password Applies to the HASHED keyword only. Specifica il valore hash della password per l'account di accesso in fase di creazione.Specifies the hashed value of the password for the login that is being created.

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.When a login (or a contained database user) connects and is authenticated, the connection caches identity information about the login. In caso di un account di accesso con l'autenticazione di Windows, sono incluse informazioni sull'appartenenza ai gruppi di Windows.For a Windows Authentication login, this includes information about membership in Windows groups. L'identità dell'account di accesso rimane autenticata, a condizione che la connessione venga mantenuta.The identity of the login remains authenticated as long as the connection is maintained. 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 ServerSQL Server) e accedere di nuovo.To force changes in the identity, such as a password reset or change in Windows group membership, the login must logoff from the authentication authority (Windows or SQL ServerSQL Server), and log in again. 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.A member of the sysadmin fixed server role or any login with the ALTER ANY CONNECTION permission can use the KILL command to end a connection and force a login to reconnect. SQL Server Management StudioSQL Server Management Studio è possibile usare di nuovo le informazioni di connessione quando si aprono più connessioni alle finestre Esplora oggetti ed Editor di query.can reuse connection information when opening multiple connections to Object Explorer and Query Editor windows. Chiudere tutte le connessioni per forzare la riconnessione.Close all connections to force reconnection.

HASHED si applica solo agli account di accesso di SQL ServerSQL Server.HASHED Applies to SQL ServerSQL Server logins only. Specifica che è già stato eseguito l'hashing per la password immessa dopo l'argomento PASSWORD.Specifies that the password entered after the PASSWORD argument is already hashed. Se si include questa opzione, viene eseguito l'hashing della password prima che questa venga archiviata nel database.If this option is not selected, the password is hashed before being stored in the database. Questa opzione deve essere utilizzata solo per la sincronizzazione degli account di accesso tra due server.This option should only be used for login synchronization between two servers. Non utilizzare l'opzione HASHED per le normali operazioni di modifica delle password.Do not use the HASHED option to routinely change passwords.

OLD_PASSWORD =' oldpassword ' si applica solo agli account di accesso di SQL ServerSQL Server.OLD_PASSWORD ='oldpassword' Applies only to SQL ServerSQL Server logins. Password corrente dell'account di accesso a cui verrà assegnata una nuova password.The current password of the login to which a new password will be assigned. Per le password viene fatta distinzione tra maiuscole e minuscole.Passwords are case-sensitive.

MUST_CHANGE si applica solo agli account di accesso di SQL ServerSQL Server.MUST_CHANGE Applies only to SQL ServerSQL Server logins. Se si include questa opzione, SQL ServerSQL Server richiederà una password aggiornata al primo utilizzo dell'account di accesso modificato.If this option is included, SQL ServerSQL Server will prompt for an updated password the first time the altered login is used.

DEFAULT_DATABASE = database specifica il database predefinito da assegnare all'account di accesso.DEFAULT_DATABASE =database Specifies a default database to be assigned to the login.

DEFAULT_LANGUAGE = language specifica la lingua predefinita da assegnare all'account di accesso.DEFAULT_LANGUAGE =language Specifies a default language to be assigned to the login. La lingua predefinita per tutti gli account di accesso dei database SQL è l'inglese e non può essere modificata.The default language for all SQL Database logins is English and cannot be changed. La lingua predefinita dell'account di accesso sa per SQL ServerSQL Server su Linux, è l'inglese, ma può essere modificata.The default language of the sa login on SQL ServerSQL Server on Linux, is English but it can be changed.

NAME = login_name è il nuovo nome dell'account di accesso da rinominare.NAME = login_name The new name of the login that is being renamed. 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 ServerSQL Server.If this is a Windows login, the SID of the Windows principal corresponding to the new name must match the SID associated with the login in SQL ServerSQL Server. Il nuovo nome di un account di accesso SQL ServerSQL Server non può contenere una barra rovesciata (\).The new name of a SQL ServerSQL Server login cannot contain a backslash character (\).

CHECK_EXPIRATION = { ON | OFF } si applica solo agli account di accesso di SQL ServerSQL Server.CHECK_EXPIRATION = { ON | OFF } Applies only to SQL ServerSQL Server logins. Specifica se i criteri di scadenza delle password devono essere applicati a questo account di accesso.Specifies whether password expiration policy should be enforced on this login. Il valore predefinito è OFF.The default value is OFF.

CHECK_POLICY = { ON | OFF } si applica solo agli account di accesso di SQL ServerSQL Server.CHECK_POLICY = { ON | OFF } Applies only to SQL ServerSQL Server logins. Specifica che i criteri password di Windows del computer in cui è in esecuzione SQL ServerSQL Server devono essere applicati a questo account di accesso.Specifies that the Windows password policies of the computer on which SQL ServerSQL Server is running should be enforced on this login. Il valore predefinito è ON.The default value is ON.

CREDENTIAL = credential_name è il nome della credenziale di cui eseguire il mapping a un account di accesso di SQL ServerSQL Server.CREDENTIAL = credential_name The name of a credential to be mapped to a SQL ServerSQL Server login. La credenziale deve già esistere nel server.The credential must already exist in the server. Per altre informazioni, vedere Credenziali.For more information, see Credentials. Non è possibile eseguire il mapping di credenziali all'account di accesso sa.A credential cannot be mapped to the sa login.

NO CREDENTIAL rimuove gli eventuali mapping esistenti tra l'account di accesso e una credenziale del server.NO CREDENTIAL Removes any existing mapping of the login to a server credential. Per altre informazioni, vedere Credenziali.For more information, see Credentials.

UNLOCK si applica solo agli account di accesso di SQL ServerSQL Server.UNLOCK Applies only to SQL ServerSQL Server logins. Specifica che un account di accesso bloccato deve essere sbloccato.Specifies that a login that is locked out should be unlocked.

ADD CREDENTIAL aggiunge una credenziale del provider EKM per l'account di accesso.ADD CREDENTIAL Adds an Extensible Key Management (EKM) provider credential to the login. Per altre informazioni, vedere Extensible Key Management (EKM).For more information, see Extensible Key Management (EKM).

DROP CREDENTIAL rimuove una credenziale del provider EKM dall'account di accesso.DROP CREDENTIAL Removes an Extensible Key Management (EKM) provider credential from the login. Per altre informazioni, vedere [Extensible Key Management (EKM)] (../..For more information, see [Extensible Key Management (EKM)] (../.. /relational-databases/security/encryption/extensible-key-management-ekm.md)./relational-databases/security/encryption/extensible-key-management-ekm.md).

RemarksRemarks

Quando CHECK_POLICY è impostato su ON, non è possibile utilizzare l'argomento HASHED.When CHECK_POLICY is set to ON, the HASHED argument cannot be used.

Quando si modifica l'opzione CHECK_POLICY impostandola su ON, si verifica il comportamento seguente:When CHECK_POLICY is changed to ON, the following behavior occurs:

  • La cronologia delle password viene inizializzata con il valore dell'hash della password corrente.The password history is initialized with the value of the current password hash.

    Quando si modifica l'opzione CHECK_POLICY impostandola su OFF, si ottengono le conseguenze seguenti:When CHECK_POLICY is changed to OFF, the following behavior occurs:

  • Anche l'opzione CHECK_EXPIRATION viene impostata su OFF.CHECK_EXPIRATION is also set to OFF.

  • Viene cancellata la cronologia delle password.The password history is cleared.

  • Il valore di lockout_time viene reimpostato.The value of lockout_time is reset.

Se si specifica MUST_CHANGE, è necessario impostare CHECK_EXPIRATION e CHECK_POLICY su ON.If MUST_CHANGE is specified, CHECK_EXPIRATION and CHECK_POLICY must be set to ON. In caso contrario, l'istruzione non verrà eseguita correttamente.Otherwise, the statement will fail.

Se l'opzione CHECK_POLICY è impostata su OFF, non è possibile impostare CHECK_EXPIRATION su ON.If CHECK_POLICY is set to OFF, CHECK_EXPIRATION cannot be set to ON. Un'istruzione ALTER LOGIN che presenta questa combinazione di opzioni avrà esito negativo.An ALTER LOGIN statement that has this combination of options will fail.

Non è possibile utilizzare ALTER_LOGIN con l'argomento DISABLE per negare l'accesso a un gruppo di Windows.You cannot use ALTER_LOGIN with the DISABLE argument to deny access to a Windows group. Ad esempio, ALTER_LOGIN [domain\group] DISABLE restituisce il messaggio di errore seguente:For example, ALTER_LOGIN [domain\group] DISABLE will return the following error message:

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

This is by design.

Nel Database SQLSQL Database 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.In Database SQLSQL Database, login data required to authenticate a connection and server-level firewall rules are temporarily cached in each database. Questa cache viene aggiornata periodicamente.This cache is periodically refreshed. 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.To force a refresh of the authentication cache and make sure that a database has the latest version of the logins table, execute DBCC FLUSHAUTHCACHE.

AutorizzazioniPermissions

È richiesta l'autorizzazione ALTER ANY LOGIN.Requires ALTER ANY LOGIN permission.

Se viene utilizzata l'opzione CREDENTIAL, è richiesta anche l'autorizzazione ALTER ANY CREDENTIAL.If the CREDENTIAL option is used, also requires ALTER ANY CREDENTIAL permission.

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:If the login that is being changed is a member of the sysadmin fixed server role or a grantee of CONTROL SERVER permission, also requires CONTROL SERVER permission when making the following changes:

  • Reimpostazione della password senza specificare la vecchia password.Resetting the password without supplying the old password.
  • Attivazione di MUST_CHANGE, CHECK_POLICY o CHECK_EXPIRATION.Enabling MUST_CHANGE, CHECK_POLICY, or CHECK_EXPIRATION.
  • Modifica del nome dell'account di accesso.Changing the login name.
  • Attivazione o disabilitazione dell'account di accesso.Enabling or disabling the login.
  • Mapping dell'account di accesso a una diversa credenziale.Mapping the login to a different credential.

Un'entità può modificare la password, la lingua predefinita e il database predefinito per il proprio account di accesso.A principal can change the password, default language, and default database for its own login.

EsempiExamples

A.A. Abilitazione di un account di accesso disabilitatoEnabling a disabled login

Nell'esempio seguente viene attivato l'account di accesso Mary5.The following example enables the login Mary5.

ALTER LOGIN Mary5 ENABLE;

B.B. Modifica della password di un account di accessoChanging the password of a login

Nell'esempio seguente viene modificata la password dell'account di accesso Mary5 in una password complessa.The following example changes the password of login Mary5 to a strong password.

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

C.C. Modifica della password di un account di accesso quando si è eseguito l'accesso con tale accountChanging the password of a login when logged in as the login

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.If you are attempting to change the password of the login that you're currently logged in with and you do not have the ALTER ANY LOGIN permission you must specify the OLD_PASSWORD option.

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

D.D. Modifica del nome di un account di accessoChanging the name of a login

Nell'esempio seguente viene modificato il nome dell'account di accesso Mary5 in John2.The following example changes the name of login Mary5 to John2.

ALTER LOGIN Mary5 WITH NAME = John2;

E.E. Mapping tra un account di accesso e una credenzialeMapping a login to a credential

Nell'esempio seguente sull'account di accesso John2 viene eseguito il mapping alla credenziale Custodian04.The following example maps the login John2 to the credential Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

F.F. Mapping di un account di accesso a una credenziale EKMMapping a login to an Extensible Key Management credential

Nell'esempio seguente viene eseguito il mapping dell'account di accesso Mary5 alla credenziale EKM EKMProvider1.The following example maps the login Mary5 to the EKM credential EKMProvider1.

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

F.F. Sblocco di un account di accessoUnlocking a login

Per sbloccare un account di accesso di SQL ServerSQL Server eseguire l'istruzione seguente, sostituendo **** con la password dell'account desiderata.To unlock a SQL ServerSQL Server login, execute the following statement, replacing **** with the desired account password.

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.To unlock a login without changing the password, turn the check policy off and then on again.

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

G.G. Modifica della password di un account di accesso mediante HASHEDChanging the password of a login using HASHED

Nell'esempio seguente viene modificata la password dell'account di accesso TestUser con un valore con hash.The following example changes the password of the TestUser login to an already hashed value.

ALTER LOGIN TestUser WITH
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

Vedere ancheSee Also

SQL ServerSQL Server *Database singolo/pool elastico
database SQL*
* SQL Database
single database/elastic pool *
Istanza gestita
database SQL
SQL Database
managed instance
SQL Data
Warehouse
SQL Data
Warehouse
Piattaforma di strumenti
analitici (PDW)
Analytics Platform
System (PDW)

 

Database singolo/pool elastico di database SQL di AzureAzure SQL Database single database/elastic pool

SQL ServerSQL Server

SintassiSyntax

-- Syntax for Azure SQL Database and Azure SQL Data Warehouse

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

<status_option> ::=
    ENABLE | DISABLE

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

ArgomentiArguments

login_name specifica il nome dell'account di accesso di SQL ServerSQL Server da modificare.login_name Specifies the name of the SQL ServerSQL Server login that is being changed. Gli account di accesso per il dominio devono essere racchiusi tra parentesi nel formato [dominio\utente].Domain logins must be enclosed in brackets in the format [domain\user].

ENABLE | DISABLE abilita o disabilita questo account di accesso.ENABLE | DISABLE Enables or disables this login. La disabilitazione di un account di accesso non influisce sul comportamento degli account di accesso già connessi.Disabling a login does not affect the behavior of logins that are already connected. (Usare l'istruzione KILL per terminare le connessioni esistenti.) Gli account di accesso disabilitati conservano le autorizzazioni e possono essere ancora rappresentati.(Use the KILL statement to terminate an existing connections.) Disabled logins retain their permissions and can still be impersonated.

PASSWORD =' password ' si applica solo agli account di accesso di SQL ServerSQL Server.PASSWORD ='password' Applies only to SQL ServerSQL Server logins. Specifica la password per l'account di accesso che viene modificato.Specifies the password for the login that is being changed. Per le password viene fatta distinzione tra maiuscole e minuscole.Passwords are case-sensitive.

Le connessioni continuamente attive a database SQL richiedono la riautorizzazione (eseguita dal motore di database) almeno ogni 10 ore.Continuously active connections to SQL Database require reauthorization (performed by the Database Engine) at least every 10 hours. Il motore di database prova la riautorizzazione usando la password inviata originariamente e non richiede alcun input da parte dell'utente.The Database Engine attempts reauthorization using the originally submitted password and no user input is required. 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.For performance reasons, when a password is reset in SQL Database, the connection will not be re-authenticated, even if the connection is reset due to connection pooling. Questo comportamento è diverso da quello dell'istanza locale di SQL Server.This is different from the behavior of on-premises 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.If the password has been changed since the connection was initially authorized, the connection must be terminated and a new connection made using the new password. Un utente con l'autorizzazione KILL DATABASE CONNECTION può terminare in modo esplicito una connessione al database SQL usando il comando KILL.A user with the KILL DATABASE CONNECTION permission can explicitly terminate a connection to SQL Database by using the KILL command. Per altre informazioni, vedere KILL.For more information, see 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.When a login (or a contained database user) connects and is authenticated, the connection caches identity information about the login. In caso di un account di accesso con l'autenticazione di Windows, sono incluse informazioni sull'appartenenza ai gruppi di Windows.For a Windows Authentication login, this includes information about membership in Windows groups. L'identità dell'account di accesso rimane autenticata, a condizione che la connessione venga mantenuta.The identity of the login remains authenticated as long as the connection is maintained. 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 ServerSQL Server) e accedere di nuovo.To force changes in the identity, such as a password reset or change in Windows group membership, the login must logoff from the authentication authority (Windows or SQL ServerSQL Server), and log in again. 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.A member of the sysadmin fixed server role or any login with the ALTER ANY CONNECTION permission can use the KILL command to end a connection and force a login to reconnect. SQL Server Management StudioSQL Server Management Studio è possibile usare di nuovo le informazioni di connessione quando si aprono più connessioni alle finestre Esplora oggetti ed Editor di query.can reuse connection information when opening multiple connections to Object Explorer and Query Editor windows. Chiudere tutte le connessioni per forzare la riconnessione.Close all connections to force reconnection.

OLD_PASSWORD =' oldpassword ' si applica solo agli account di accesso di SQL ServerSQL Server.OLD_PASSWORD ='oldpassword' Applies only to SQL ServerSQL Server logins. Password corrente dell'account di accesso a cui verrà assegnata una nuova password.The current password of the login to which a new password will be assigned. Per le password viene fatta distinzione tra maiuscole e minuscole.Passwords are case-sensitive.

NAME = login_name è il nuovo nome dell'account di accesso da rinominare.NAME = login_name The new name of the login that is being renamed. 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 ServerSQL Server.If this is a Windows login, the SID of the Windows principal corresponding to the new name must match the SID associated with the login in SQL ServerSQL Server. Il nuovo nome di un account di accesso SQL ServerSQL Server non può contenere una barra rovesciata (\).The new name of a SQL ServerSQL Server login cannot contain a backslash character (\).

RemarksRemarks

Nel Database SQLSQL Database 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.In Database SQLSQL Database, login data required to authenticate a connection and server-level firewall rules are temporarily cached in each database. Questa cache viene aggiornata periodicamente.This cache is periodically refreshed. 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.To force a refresh of the authentication cache and make sure that a database has the latest version of the logins table, execute DBCC FLUSHAUTHCACHE.

AutorizzazioniPermissions

È richiesta l'autorizzazione ALTER ANY LOGIN.Requires ALTER ANY LOGIN permission.

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:If the login that is being changed is a member of the sysadmin fixed server role or a grantee of CONTROL SERVER permission, also requires CONTROL SERVER permission when making the following changes:

  • Reimpostazione della password senza specificare la vecchia password.Resetting the password without supplying the old password.
  • Modifica del nome dell'account di accesso.Changing the login name.
  • Attivazione o disabilitazione dell'account di accesso.Enabling or disabling the login.
  • Mapping dell'account di accesso a una diversa credenziale.Mapping the login to a different credential.

Un'entità di sicurezza può modificare la password per il proprio account di accesso.A principal can change the password for its own login.

EsempiExamples

Sono inclusi anche alcuni esempi per l'uso di altri prodotti SQL.These examples also include examples for using other SQL products. Verificare quali argomenti tra i precedenti sono supportati.Please see which arguments are supported above.

A.A. Abilitazione di un account di accesso disabilitatoEnabling a disabled login

Nell'esempio seguente viene attivato l'account di accesso Mary5.The following example enables the login Mary5.

ALTER LOGIN Mary5 ENABLE;

B.B. Modifica della password di un account di accessoChanging the password of a login

Nell'esempio seguente viene modificata la password dell'account di accesso Mary5 in una password complessa.The following example changes the password of login Mary5 to a strong password.

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

C.C. Modifica del nome di un account di accessoChanging the name of a login

Nell'esempio seguente viene modificato il nome dell'account di accesso Mary5 in John2.The following example changes the name of login Mary5 to John2.

ALTER LOGIN Mary5 WITH NAME = John2;

D.D. Mapping tra un account di accesso e una credenzialeMapping a login to a credential

Nell'esempio seguente sull'account di accesso John2 viene eseguito il mapping alla credenziale Custodian04.The following example maps the login John2 to the credential Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E.E. Mapping di un account di accesso a una credenziale EKMMapping a login to an Extensible Key Management credential

Nell'esempio seguente viene eseguito il mapping dell'account di accesso Mary5 alla credenziale EKM EKMProvider1.The following example maps the login Mary5 to the EKM credential EKMProvider1.

Si applica a: SQL Server 2008SQL Server 2008 tramite SQL Server 2017SQL Server 2017.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

F.F. Sblocco di un account di accessoUnlocking a login

Per sbloccare un account di accesso di SQL ServerSQL Server eseguire l'istruzione seguente, sostituendo **** con la password dell'account desiderata.To unlock a SQL ServerSQL Server login, execute the following statement, replacing **** with the desired account password.

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.To unlock a login without changing the password, turn the check policy off and then on again.

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

G.G. Modifica della password di un account di accesso mediante HASHEDChanging the password of a login using HASHED

Nell'esempio seguente viene modificata la password dell'account di accesso TestUser con un valore con hash.The following example changes the password of the TestUser login to an already hashed value.

Si applica a: SQL Server 2008SQL Server 2008 tramite SQL Server 2017SQL Server 2017.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

ALTER LOGIN TestUser WITH
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

Vedere ancheSee Also

SQL ServerSQL Server Database singolo/pool elastico
database SQL
SQL Database
single database/elastic pool
* Istanza gestita
database SQL*
* SQL Database
managed instance *
SQL Data
Warehouse
SQL Data
Warehouse
Piattaforma di strumenti
analitici (PDW)
Analytics Platform
System (PDW)

 

Istanza gestita di database SQL di AzureAzure SQL Database managed instance

SintassiSyntax

-- Syntax for SQL Server and Azure SQL Database 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

Importante

Gli account di accesso di Azure AD per l'istanza gestita di database SQL sono in anteprima pubblica.Azure AD logins for SQL Database managed instance is in public preview.

-- Syntax for Azure SQL Database managed instance using Azure AD logins

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

<status_option> ::=
    ENABLE | DISABLE

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

ArgomentiArguments

Argomenti applicabili agli account di accesso SQL e Azure ADArguments applicable to SQL and Azure AD logins

login_name specifica il nome dell'account di accesso di SQL ServerSQL Server da modificare.login_name Specifies the name of the SQL ServerSQL Server login that is being changed. Gli account di accesso di Azure AD devono essere specificati come user@domain.Azure AD logins must be specified as user@domain. Ad esempio, john.smith@contoso.com, o come nome del gruppo di Azure AD o dell'applicazione.For example, john.smith@contoso.com, or as the Azure AD group or application name. Per gli account di accesso di Azure AD, login_name deve corrispondere a un account di accesso di Azure AD esistente creato nel database master.For Azure AD logins, the login_name must correspond to an existing Azure AD login created in the master database.

ENABLE | DISABLE abilita o disabilita questo account di accesso.ENABLE | DISABLE Enables or disables this login. La disabilitazione di un account di accesso non influisce sul comportamento degli account di accesso già connessi.Disabling a login does not affect the behavior of logins that are already connected. Usare l'istruzione KILL per terminare la connessione esistente. Gli account di accesso disabilitati conservano le autorizzazioni e possono essere ancora rappresentati.(Use the KILL statement to terminate an existing connection.) Disabled logins retain their permissions and can still be impersonated.

DEFAULT_DATABASE = database specifica il database predefinito da assegnare all'account di accesso.DEFAULT_DATABASE =database Specifies a default database to be assigned to the login.

DEFAULT_LANGUAGE = language specifica la lingua predefinita da assegnare all'account di accesso.DEFAULT_LANGUAGE =language Specifies a default language to be assigned to the login. La lingua predefinita per tutti gli account di accesso dei database SQL è l'inglese e non può essere modificata.The default language for all SQL Database logins is English and cannot be changed. La lingua predefinita dell'account di accesso sa per SQL ServerSQL Server su Linux, è l'inglese, ma può essere modificata.The default language of the sa login on SQL ServerSQL Server on Linux, is English but it can be changed.

Argomenti applicabili solo agli account di accesso SQLArguments applicable only to SQL logins

PASSWORD =' password ' si applica solo agli account di accesso di SQL ServerSQL Server.PASSWORD ='password' Applies only to SQL ServerSQL Server logins. Specifica la password per l'account di accesso che viene modificato.Specifies the password for the login that is being changed. Per le password viene fatta distinzione tra maiuscole e minuscole.Passwords are case-sensitive. Le password inoltre non sono valide se usate con account di accesso esterni, ad esempio gli account di accesso di Azure AD.Passwords also do not apply when used with external logins, like Azure AD logins.

Le connessioni continuamente attive a database SQL richiedono la riautorizzazione (eseguita dal motore di database) almeno ogni 10 ore.Continuously active connections to SQL Database require reauthorization (performed by the Database Engine) at least every 10 hours. Il motore di database prova la riautorizzazione usando la password inviata originariamente e non richiede alcun input da parte dell'utente.The Database Engine attempts reauthorization using the originally submitted password and no user input is required. 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.For performance reasons, when a password is reset in SQL Database, the connection will not be re-authenticated, even if the connection is reset due to connection pooling. Questo comportamento è diverso da quello dell'istanza locale di SQL Server.This is different from the behavior of on-premises 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.If the password has been changed since the connection was initially authorized, the connection must be terminated and a new connection made using the new password. Un utente con l'autorizzazione KILL DATABASE CONNECTION può terminare in modo esplicito una connessione al database SQL usando il comando KILL.A user with the KILL DATABASE CONNECTION permission can explicitly terminate a connection to SQL Database by using the KILL command. Per altre informazioni, vedere KILL.For more information, see KILL.

PASSWORD = hashed_password si applica solo alle parole chiave HASHED.PASSWORD =hashed_password Applies to the HASHED keyword only. Specifica il valore hash della password per l'account di accesso in fase di creazione.Specifies the hashed value of the password for the login that is being created.

HASHED si applica solo agli account di accesso di SQL ServerSQL Server.HASHED Applies to SQL ServerSQL Server logins only. Specifica che è già stato eseguito l'hashing per la password immessa dopo l'argomento PASSWORD.Specifies that the password entered after the PASSWORD argument is already hashed. Se si include questa opzione, viene eseguito l'hashing della password prima che questa venga archiviata nel database.If this option is not selected, the password is hashed before being stored in the database. Questa opzione deve essere utilizzata solo per la sincronizzazione degli account di accesso tra due server.This option should only be used for login synchronization between two servers. Non utilizzare l'opzione HASHED per le normali operazioni di modifica delle password.Do not use the HASHED option to routinely change passwords.

OLD_PASSWORD =' oldpassword ' si applica solo agli account di accesso di SQL ServerSQL Server.OLD_PASSWORD ='oldpassword' Applies only to SQL ServerSQL Server logins. Password corrente dell'account di accesso a cui verrà assegnata una nuova password.The current password of the login to which a new password will be assigned. Per le password viene fatta distinzione tra maiuscole e minuscole.Passwords are case-sensitive.

MUST_CHANGEMUST_CHANGE
Si applica solo agli account di accesso di SQL ServerSQL Server.Applies only to SQL ServerSQL Server logins. Se si include questa opzione, SQL ServerSQL Server richiederà una password aggiornata al primo utilizzo dell'account di accesso modificato.If this option is included, SQL ServerSQL Server will prompt for an updated password the first time the altered login is used.

NAME = login_name è il nuovo nome dell'account di accesso da rinominare.NAME = login_name The new name of the login that is being renamed. 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 ServerSQL Server.If the login is a Windows login, the SID of the Windows principal corresponding to the new name must match the SID associated with the login in SQL ServerSQL Server. Il nuovo nome di un account di accesso SQL ServerSQL Server non può contenere una barra rovesciata (\).The new name of a SQL ServerSQL Server login cannot contain a backslash character (\).

CHECK_EXPIRATION = { ON | OFF } si applica solo agli account di accesso di SQL ServerSQL Server.CHECK_EXPIRATION = { ON | OFF } Applies only to SQL ServerSQL Server logins. Specifica se i criteri di scadenza delle password devono essere applicati a questo account di accesso.Specifies whether password expiration policy should be enforced on this login. Il valore predefinito è OFF.The default value is OFF.

CHECK_POLICY = { ON | OFF } si applica solo agli account di accesso di SQL ServerSQL Server.CHECK_POLICY = { ON | OFF } Applies only to SQL ServerSQL Server logins. Specifica che i criteri password di Windows del computer in cui è in esecuzione SQL ServerSQL Server devono essere applicati a questo account di accesso.Specifies that the Windows password policies of the computer on which SQL ServerSQL Server is running should be enforced on this login. Il valore predefinito è ON.The default value is ON.

CREDENTIAL = credential_name è il nome della credenziale di cui eseguire il mapping a un account di accesso di SQL ServerSQL Server.CREDENTIAL = credential_name The name of a credential to be mapped to a SQL ServerSQL Server login. La credenziale deve già esistere nel server.The credential must already exist in the server. Per altre informazioni, vedere Credenziali.For more information, see Credentials. Non è possibile eseguire il mapping di credenziali all'account di accesso sa.A credential cannot be mapped to the sa login.

NO CREDENTIAL rimuove gli eventuali mapping esistenti tra l'account di accesso e una credenziale del server.NO CREDENTIAL Removes any existing mapping of the login to a server credential. Per altre informazioni, vedere Credenziali.For more information, see Credentials.

UNLOCK si applica solo agli account di accesso di SQL ServerSQL Server.UNLOCK Applies only to SQL ServerSQL Server logins. Specifica che un account di accesso bloccato deve essere sbloccato.Specifies that a login that is locked out should be unlocked.

ADD CREDENTIAL aggiunge una credenziale del provider EKM per l'account di accesso.ADD CREDENTIAL Adds an Extensible Key Management (EKM) provider credential to the login. Per altre informazioni, vedere Extensible Key Management (EKM).For more information, see Extensible Key Management (EKM).

DROP CREDENTIAL rimuove una credenziale del provider EKM dall'account di accesso.DROP CREDENTIAL Removes an Extensible Key Management (EKM) provider credential from the login. Per altre informazioni, vedere Extensible Key Management (EKM).For more information, see Extensible Key Management (EKM).

RemarksRemarks

Quando CHECK_POLICY è impostato su ON, non è possibile utilizzare l'argomento HASHED.When CHECK_POLICY is set to ON, the HASHED argument cannot be used.

Quando si modifica l'opzione CHECK_POLICY impostandola su ON, si verifica il comportamento seguente:When CHECK_POLICY is changed to ON, the following behavior occurs:

  • La cronologia delle password viene inizializzata con il valore dell'hash della password corrente.The password history is initialized with the value of the current password hash.

    Quando si modifica l'opzione CHECK_POLICY impostandola su OFF, si ottengono le conseguenze seguenti:When CHECK_POLICY is changed to OFF, the following behavior occurs:

  • Anche l'opzione CHECK_EXPIRATION viene impostata su OFF.CHECK_EXPIRATION is also set to OFF.

  • Viene cancellata la cronologia delle password.The password history is cleared.

  • Il valore di lockout_time viene reimpostato.The value of lockout_time is reset.

Se si specifica MUST_CHANGE, è necessario impostare CHECK_EXPIRATION e CHECK_POLICY su ON.If MUST_CHANGE is specified, CHECK_EXPIRATION and CHECK_POLICY must be set to ON. In caso contrario, l'istruzione non verrà eseguita correttamente.Otherwise, the statement will fail.

Se l'opzione CHECK_POLICY è impostata su OFF, non è possibile impostare CHECK_EXPIRATION su ON.If CHECK_POLICY is set to OFF, CHECK_EXPIRATION cannot be set to ON. Un'istruzione ALTER LOGIN che presenta questa combinazione di opzioni avrà esito negativo.An ALTER LOGIN statement that has this combination of options will fail.

Non è possibile utilizzare ALTER_LOGIN con l'argomento DISABLE per negare l'accesso a un gruppo di Windows.You cannot use ALTER_LOGIN with the DISABLE argument to deny access to a Windows group. Questo si verifica per motivi strutturali.This is by design. Ad esempio, ALTER_LOGIN [domain\group] DISABLE restituisce il messaggio di errore seguente:For example, ALTER_LOGIN [domain\group] DISABLE will return the following error message:

`"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 SQLSQL Database 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.In Database SQLSQL Database, login data required to authenticate a connection and server-level firewall rules are temporarily cached in each database. Questa cache viene aggiornata periodicamente.This cache is periodically refreshed. 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.To force a refresh of the authentication cache and make sure that a database has the latest version of the logins table, execute DBCC FLUSHAUTHCACHE.

AutorizzazioniPermissions

È richiesta l'autorizzazione ALTER ANY LOGIN.Requires ALTER ANY LOGIN permission.

Se viene utilizzata l'opzione CREDENTIAL, è richiesta anche l'autorizzazione ALTER ANY CREDENTIAL.If the CREDENTIAL option is used, also requires ALTER ANY CREDENTIAL permission.

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:If the login that is being changed is a member of the sysadmin fixed server role or a grantee of CONTROL SERVER permission, also requires CONTROL SERVER permission when making the following changes:

  • Reimpostazione della password senza specificare la vecchia password.Resetting the password without supplying the old password.
  • Attivazione di MUST_CHANGE, CHECK_POLICY o CHECK_EXPIRATION.Enabling MUST_CHANGE, CHECK_POLICY, or CHECK_EXPIRATION.
  • Modifica del nome dell'account di accesso.Changing the login name.
  • Attivazione o disabilitazione dell'account di accesso.Enabling or disabling the login.
  • Mapping dell'account di accesso a una diversa credenziale.Mapping the login to a different credential.

Un'entità può modificare la password, la lingua predefinita e il database predefinito per il proprio account di accesso.A principal can change the password, default language, and default database for its own login.

Solo un'entità SQL con privilegi sysadmin può eseguire un comando ALTER LOGIN per un account di accesso di Azure AD.Only a SQL principal with sysadmin privileges can execute an ALTER LOGIN command against an Azure AD login.

EsempiExamples

Sono inclusi anche alcuni esempi per l'uso di altri prodotti SQL.These examples also include examples for using other SQL products. Verificare quali argomenti tra i precedenti sono supportati.Please see which arguments are supported above.

A.A. Abilitazione di un account di accesso disabilitatoEnabling a disabled login

Nell'esempio seguente viene attivato l'account di accesso Mary5.The following example enables the login Mary5.

ALTER LOGIN Mary5 ENABLE;

B.B. Modifica della password di un account di accessoChanging the password of a login

Nell'esempio seguente viene modificata la password dell'account di accesso Mary5 in una password complessa.The following example changes the password of login Mary5 to a strong password.

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

C.C. Modifica del nome di un account di accessoChanging the name of a login

Nell'esempio seguente viene modificato il nome dell'account di accesso Mary5 in John2.The following example changes the name of login Mary5 to John2.

ALTER LOGIN Mary5 WITH NAME = John2;

D.D. Mapping tra un account di accesso e una credenzialeMapping a login to a credential

Nell'esempio seguente sull'account di accesso John2 viene eseguito il mapping alla credenziale Custodian04.The following example maps the login John2 to the credential Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E.E. Mapping di un account di accesso a una credenziale EKMMapping a login to an Extensible Key Management credential

Nell'esempio seguente viene eseguito il mapping dell'account di accesso Mary5 alla credenziale EKM EKMProvider1.The following example maps the login Mary5 to the EKM credential EKMProvider1.

Si applica a: da SQL Server 2008SQL Server 2008 a SQL Server 2017SQL Server 2017 e all'istanza gestita di database SQL di Azure.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, and Azure SQL Database managed instance.

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

F.F. Sblocco di un account di accessoUnlocking a login

Per sbloccare un account di accesso di SQL ServerSQL Server eseguire l'istruzione seguente, sostituendo **** con la password dell'account desiderata.To unlock a SQL ServerSQL Server login, execute the following statement, replacing **** with the desired account password.

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.To unlock a login without changing the password, turn the check policy off and then on again.

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

G.G. Modifica della password di un account di accesso mediante HASHEDChanging the password of a login using HASHED

Nell'esempio seguente viene modificata la password dell'account di accesso TestUser con un valore con hash.The following example changes the password of the TestUser login to an already hashed value.

Si applica a: da SQL Server 2008SQL Server 2008 a SQL Server 2017SQL Server 2017 e all'istanza gestita di database SQL di Azure.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, and Azure SQL Database managed instance.

ALTER LOGIN TestUser WITH
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

H.H. Disabilitazione dell'account di accesso di un utente di Azure ADDisabling the login of an Azure AD user

L'esempio seguente disabilita l'account di accesso di un utente di Azure AD, joe@contoso.com.The following example disables the login of an Azure AD user, joe@contoso.com.

ALTER LOGIN [joe@contoso.com] DISABLE

Vedere ancheSee Also

SQL ServerSQL Server Database singolo/pool elastico
database SQL
SQL Database
single database/elastic pool
Istanza gestita
database SQL
SQL Database
managed instance
* SQL Data
Warehouse *
* SQL Data
Warehouse *
Piattaforma di strumenti
analitici (PDW)
Analytics Platform
System (PDW)

 

Azure SQL Data WarehouseAzure SQL Data Warehouse

SintassiSyntax

-- Syntax for Azure SQL Database and Azure SQL Data Warehouse

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

<status_option> ::=
    ENABLE | DISABLE

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

ArgomentiArguments

login_name specifica il nome dell'account di accesso di SQL ServerSQL Server da modificare.login_name Specifies the name of the SQL ServerSQL Server login that is being changed. Gli account di accesso per il dominio devono essere racchiusi tra parentesi nel formato [dominio\utente].Domain logins must be enclosed in brackets in the format [domain\user].

ENABLE | DISABLE abilita o disabilita questo account di accesso.ENABLE | DISABLE Enables or disables this login. La disabilitazione di un account di accesso non influisce sul comportamento degli account di accesso già connessi.Disabling a login does not affect the behavior of logins that are already connected. (Usare l'istruzione KILL per terminare le connessioni esistenti.) Gli account di accesso disabilitati conservano le autorizzazioni e possono essere ancora rappresentati.(Use the KILL statement to terminate an existing connections.) Disabled logins retain their permissions and can still be impersonated.

PASSWORD =' password ' si applica solo agli account di accesso di SQL ServerSQL Server.PASSWORD ='password' Applies only to SQL ServerSQL Server logins. Specifica la password per l'account di accesso che viene modificato.Specifies the password for the login that is being changed. Per le password viene fatta distinzione tra maiuscole e minuscole.Passwords are case-sensitive.

Le connessioni continuamente attive a database SQL richiedono la riautorizzazione (eseguita dal motore di database) almeno ogni 10 ore.Continuously active connections to SQL Database require reauthorization (performed by the Database Engine) at least every 10 hours. Il motore di database prova la riautorizzazione usando la password inviata originariamente e non richiede alcun input da parte dell'utente.The Database Engine attempts reauthorization using the originally submitted password and no user input is required. 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.For performance reasons, when a password is reset in SQL Database, the connection will not be re-authenticated, even if the connection is reset due to connection pooling. Questo comportamento è diverso da quello dell'istanza locale di SQL Server.This is different from the behavior of on-premises 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.If the password has been changed since the connection was initially authorized, the connection must be terminated and a new connection made using the new password. Un utente con l'autorizzazione KILL DATABASE CONNECTION può terminare in modo esplicito una connessione al database SQL usando il comando KILL.A user with the KILL DATABASE CONNECTION permission can explicitly terminate a connection to SQL Database by using the KILL command. Per altre informazioni, vedere KILL.For more information, see 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.When a login (or a contained database user) connects and is authenticated, the connection caches identity information about the login. In caso di un account di accesso con l'autenticazione di Windows, sono incluse informazioni sull'appartenenza ai gruppi di Windows.For a Windows Authentication login, this includes information about membership in Windows groups. L'identità dell'account di accesso rimane autenticata, a condizione che la connessione venga mantenuta.The identity of the login remains authenticated as long as the connection is maintained. 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 ServerSQL Server) e accedere di nuovo.To force changes in the identity, such as a password reset or change in Windows group membership, the login must logoff from the authentication authority (Windows or SQL ServerSQL Server), and log in again. 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.A member of the sysadmin fixed server role or any login with the ALTER ANY CONNECTION permission can use the KILL command to end a connection and force a login to reconnect. SQL Server Management StudioSQL Server Management Studio è possibile usare di nuovo le informazioni di connessione quando si aprono più connessioni alle finestre Esplora oggetti ed Editor di query.can reuse connection information when opening multiple connections to Object Explorer and Query Editor windows. Chiudere tutte le connessioni per forzare la riconnessione.Close all connections to force reconnection.

OLD_PASSWORD =' oldpassword ' si applica solo agli account di accesso di SQL ServerSQL Server.OLD_PASSWORD ='oldpassword' Applies only to SQL ServerSQL Server logins. Password corrente dell'account di accesso a cui verrà assegnata una nuova password.The current password of the login to which a new password will be assigned. Per le password viene fatta distinzione tra maiuscole e minuscole.Passwords are case-sensitive.

NAME = login_name è il nuovo nome dell'account di accesso da rinominare.NAME = login_name The new name of the login that is being renamed. 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 ServerSQL Server.If this is a Windows login, the SID of the Windows principal corresponding to the new name must match the SID associated with the login in SQL ServerSQL Server. Il nuovo nome di un account di accesso SQL ServerSQL Server non può contenere una barra rovesciata (\).The new name of a SQL ServerSQL Server login cannot contain a backslash character (\).

RemarksRemarks

Nel Database SQLSQL Database 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.In Database SQLSQL Database, login data required to authenticate a connection and server-level firewall rules are temporarily cached in each database. Questa cache viene aggiornata periodicamente.This cache is periodically refreshed. 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.To force a refresh of the authentication cache and make sure that a database has the latest version of the logins table, execute DBCC FLUSHAUTHCACHE.

AutorizzazioniPermissions

È richiesta l'autorizzazione ALTER ANY LOGIN.Requires ALTER ANY LOGIN permission.

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:If the login that is being changed is a member of the sysadmin fixed server role or a grantee of CONTROL SERVER permission, also requires CONTROL SERVER permission when making the following changes:

  • Reimpostazione della password senza specificare la vecchia password.Resetting the password without supplying the old password.
  • Modifica del nome dell'account di accesso.Changing the login name.
  • Attivazione o disabilitazione dell'account di accesso.Enabling or disabling the login.
  • Mapping dell'account di accesso a una diversa credenziale.Mapping the login to a different credential.

Un'entità di sicurezza può modificare la password per il proprio account di accesso.A principal can change the password for its own login.

EsempiExamples

Sono inclusi anche alcuni esempi per l'uso di altri prodotti SQL.These examples also include examples for using other SQL products. Verificare quali argomenti tra i precedenti sono supportati.Please see which arguments are supported above.

A.A. Abilitazione di un account di accesso disabilitatoEnabling a disabled login

Nell'esempio seguente viene attivato l'account di accesso Mary5.The following example enables the login Mary5.

ALTER LOGIN Mary5 ENABLE;

B.B. Modifica della password di un account di accessoChanging the password of a login

Nell'esempio seguente viene modificata la password dell'account di accesso Mary5 in una password complessa.The following example changes the password of login Mary5 to a strong password.

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

C.C. Modifica del nome di un account di accessoChanging the name of a login

Nell'esempio seguente viene modificato il nome dell'account di accesso Mary5 in John2.The following example changes the name of login Mary5 to John2.

ALTER LOGIN Mary5 WITH NAME = John2;

D.D. Mapping tra un account di accesso e una credenzialeMapping a login to a credential

Nell'esempio seguente sull'account di accesso John2 viene eseguito il mapping alla credenziale Custodian04.The following example maps the login John2 to the credential Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E.E. Mapping di un account di accesso a una credenziale EKMMapping a login to an Extensible Key Management credential

Nell'esempio seguente viene eseguito il mapping dell'account di accesso Mary5 alla credenziale EKM EKMProvider1.The following example maps the login Mary5 to the EKM credential EKMProvider1.

Si applica a: SQL Server 2008SQL Server 2008 tramite SQL Server 2017SQL Server 2017.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

F.F. Sblocco di un account di accessoUnlocking a login

Per sbloccare un account di accesso di SQL ServerSQL Server eseguire l'istruzione seguente, sostituendo **** con la password dell'account desiderata.To unlock a SQL ServerSQL Server login, execute the following statement, replacing **** with the desired account password.

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.To unlock a login without changing the password, turn the check policy off and then on again.

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

G.G. Modifica della password di un account di accesso mediante HASHEDChanging the password of a login using HASHED

Nell'esempio seguente viene modificata la password dell'account di accesso TestUser con un valore con hash.The following example changes the password of the TestUser login to an already hashed value.

Si applica a: SQL Server 2008SQL Server 2008 tramite SQL Server 2017SQL Server 2017.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

ALTER LOGIN TestUser WITH
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

Vedere ancheSee Also

SQL ServerSQL Server Database singolo/pool elastico
database SQL
SQL Database
single database/elastic pool
Istanza gestita
database SQL
SQL Database
managed instance
SQL Data
Warehouse
SQL Data
Warehouse
* Piattaforma di strumenti
analitici (PDW) *
* Analytics
Platform System (PDW) *

 

Sistema della piattaforma di analisiAnalytics Platform System

SintassiSyntax

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

ArgomentiArguments

login_name specifica il nome dell'account di accesso di SQL ServerSQL Server da modificare.login_name Specifies the name of the SQL ServerSQL Server login that is being changed. Gli account di accesso per il dominio devono essere racchiusi tra parentesi nel formato [dominio\utente].Domain logins must be enclosed in brackets in the format [domain\user].

ENABLE | DISABLE abilita o disabilita questo account di accesso.ENABLE | DISABLE Enables or disables this login. La disabilitazione di un account di accesso non influisce sul comportamento degli account di accesso già connessi.Disabling a login does not affect the behavior of logins that are already connected. Usare l'istruzione KILL per terminare la connessione esistente. Gli account di accesso disabilitati conservano le autorizzazioni e possono essere ancora rappresentati.(Use the KILL statement to terminate an existing connection.) Disabled logins retain their permissions and can still be impersonated.

PASSWORD =' password ' si applica solo agli account di accesso di SQL ServerSQL Server.PASSWORD ='password' Applies only to SQL ServerSQL Server logins. Specifica la password per l'account di accesso che viene modificato.Specifies the password for the login that is being changed. Per le password viene fatta distinzione tra maiuscole e minuscole.Passwords are case-sensitive.

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.When a login (or a contained database user) connects and is authenticated, the connection caches identity information about the login. In caso di un account di accesso con l'autenticazione di Windows, sono incluse informazioni sull'appartenenza ai gruppi di Windows.For a Windows Authentication login, this includes information about membership in Windows groups. L'identità dell'account di accesso rimane autenticata, a condizione che la connessione venga mantenuta.The identity of the login remains authenticated as long as the connection is maintained. 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 ServerSQL Server) e accedere di nuovo.To force changes in the identity, such as a password reset or change in Windows group membership, the login must logoff from the authentication authority (Windows or SQL ServerSQL Server), and log in again. 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.A member of the sysadmin fixed server role or any login with the ALTER ANY CONNECTION permission can use the KILL command to end a connection and force a login to reconnect. SQL Server Management StudioSQL Server Management Studio è possibile usare di nuovo le informazioni di connessione quando si aprono più connessioni alle finestre Esplora oggetti ed Editor di query.can reuse connection information when opening multiple connections to Object Explorer and Query Editor windows. Chiudere tutte le connessioni per forzare la riconnessione.Close all connections to force reconnection.

OLD_PASSWORD =' oldpassword ' si applica solo agli account di accesso di SQL ServerSQL Server.OLD_PASSWORD ='oldpassword' Applies only to SQL ServerSQL Server logins. Password corrente dell'account di accesso a cui verrà assegnata una nuova password.The current password of the login to which a new password will be assigned. Per le password viene fatta distinzione tra maiuscole e minuscole.Passwords are case-sensitive.

MUST_CHANGE si applica solo agli account di accesso di SQL ServerSQL Server.MUST_CHANGE Applies only to SQL ServerSQL Server logins. Se si include questa opzione, SQL ServerSQL Server richiederà una password aggiornata al primo utilizzo dell'account di accesso modificato.If this option is included, SQL ServerSQL Server will prompt for an updated password the first time the altered login is used.

NAME = login_name è il nuovo nome dell'account di accesso da rinominare.NAME = login_name The new name of the login that is being renamed. 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 ServerSQL Server.If the login is a Windows login, the SID of the Windows principal corresponding to the new name must match the SID associated with the login in SQL ServerSQL Server. Il nuovo nome di un account di accesso SQL ServerSQL Server non può contenere una barra rovesciata (\).The new name of a SQL ServerSQL Server login cannot contain a backslash character (\).

CHECK_EXPIRATION = { ON | OFF } si applica solo agli account di accesso di SQL ServerSQL Server.CHECK_EXPIRATION = { ON | OFF } Applies only to SQL ServerSQL Server logins. Specifica se i criteri di scadenza delle password devono essere applicati a questo account di accesso.Specifies whether password expiration policy should be enforced on this login. Il valore predefinito è OFF.The default value is OFF.

CHECK_POLICY = { ON | OFF } si applica solo agli account di accesso di SQL ServerSQL Server.CHECK_POLICY = { ON | OFF } Applies only to SQL ServerSQL Server logins. Specifica che i criteri password di Windows del computer in cui è in esecuzione SQL ServerSQL Server devono essere applicati a questo account di accesso.Specifies that the Windows password policies of the computer on which SQL ServerSQL Server is running should be enforced on this login. Il valore predefinito è ON.The default value is ON.

UNLOCK si applica solo agli account di accesso di SQL ServerSQL Server.UNLOCK Applies only to SQL ServerSQL Server logins. Specifica che un account di accesso bloccato deve essere sbloccato.Specifies that a login that is locked out should be unlocked.

RemarksRemarks

Quando CHECK_POLICY è impostato su ON, non è possibile utilizzare l'argomento HASHED.When CHECK_POLICY is set to ON, the HASHED argument cannot be used.

Quando si modifica l'opzione CHECK_POLICY impostandola su ON, si verifica il comportamento seguente:When CHECK_POLICY is changed to ON, the following behavior occurs:

  • La cronologia delle password viene inizializzata con il valore dell'hash della password corrente.The password history is initialized with the value of the current password hash.

    Quando si modifica l'opzione CHECK_POLICY impostandola su OFF, si ottengono le conseguenze seguenti:When CHECK_POLICY is changed to OFF, the following behavior occurs:

  • Anche l'opzione CHECK_EXPIRATION viene impostata su OFF.CHECK_EXPIRATION is also set to OFF.

  • Viene cancellata la cronologia delle password.The password history is cleared.

  • Il valore di lockout_time viene reimpostato.The value of lockout_time is reset.

Se si specifica MUST_CHANGE, è necessario impostare CHECK_EXPIRATION e CHECK_POLICY su ON.If MUST_CHANGE is specified, CHECK_EXPIRATION and CHECK_POLICY must be set to ON. In caso contrario, l'istruzione non verrà eseguita correttamente.Otherwise, the statement will fail.

Se l'opzione CHECK_POLICY è impostata su OFF, non è possibile impostare CHECK_EXPIRATION su ON.If CHECK_POLICY is set to OFF, CHECK_EXPIRATION cannot be set to ON. Un'istruzione ALTER LOGIN che presenta questa combinazione di opzioni avrà esito negativo.An ALTER LOGIN statement that has this combination of options will fail.

Non è possibile utilizzare ALTER_LOGIN con l'argomento DISABLE per negare l'accesso a un gruppo di Windows.You cannot use ALTER_LOGIN with the DISABLE argument to deny access to a Windows group. Questo si verifica per motivi strutturali.This is by design. Ad esempio, ALTER_LOGIN [domain\group] DISABLE restituisce il messaggio di errore seguente:For example, ALTER_LOGIN [domain\group] DISABLE will return the following error message:

`"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 SQLSQL Database 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.In Database SQLSQL Database, login data required to authenticate a connection and server-level firewall rules are temporarily cached in each database. Questa cache viene aggiornata periodicamente.This cache is periodically refreshed. 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.To force a refresh of the authentication cache and make sure that a database has the latest version of the logins table, execute DBCC FLUSHAUTHCACHE.

AutorizzazioniPermissions

È richiesta l'autorizzazione ALTER ANY LOGIN.Requires ALTER ANY LOGIN permission.

Se viene utilizzata l'opzione CREDENTIAL, è richiesta anche l'autorizzazione ALTER ANY CREDENTIAL.If the CREDENTIAL option is used, also requires ALTER ANY CREDENTIAL permission.

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:If the login that is being changed is a member of the sysadmin fixed server role or a grantee of CONTROL SERVER permission, also requires CONTROL SERVER permission when making the following changes:

  • Reimpostazione della password senza specificare la vecchia password.Resetting the password without supplying the old password.
  • Attivazione di MUST_CHANGE, CHECK_POLICY o CHECK_EXPIRATION.Enabling MUST_CHANGE, CHECK_POLICY, or CHECK_EXPIRATION.
  • Modifica del nome dell'account di accesso.Changing the login name.
  • Attivazione o disabilitazione dell'account di accesso.Enabling or disabling the login.
  • Mapping dell'account di accesso a una diversa credenziale.Mapping the login to a different credential.

Un'entità può modificare la password, la lingua predefinita e il database predefinito per il proprio account di accesso.A principal can change the password, default language, and default database for its own login.

EsempiExamples

Sono inclusi anche alcuni esempi per l'uso di altri prodotti SQL.These examples also include examples for using other SQL products. Verificare quali argomenti tra i precedenti sono supportati.Please see which arguments are supported above.

A.A. Abilitazione di un account di accesso disabilitatoEnabling a disabled login

Nell'esempio seguente viene attivato l'account di accesso Mary5.The following example enables the login Mary5.

ALTER LOGIN Mary5 ENABLE;

B.B. Modifica della password di un account di accessoChanging the password of a login

Nell'esempio seguente viene modificata la password dell'account di accesso Mary5 in una password complessa.The following example changes the password of login Mary5 to a strong password.

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

C.C. Modifica del nome di un account di accessoChanging the name of a login

Nell'esempio seguente viene modificato il nome dell'account di accesso Mary5 in John2.The following example changes the name of login Mary5 to John2.

ALTER LOGIN Mary5 WITH NAME = John2;

D.D. Mapping tra un account di accesso e una credenzialeMapping a login to a credential

Nell'esempio seguente sull'account di accesso John2 viene eseguito il mapping alla credenziale Custodian04.The following example maps the login John2 to the credential Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E.E. Mapping di un account di accesso a una credenziale EKMMapping a login to an Extensible Key Management credential

Nell'esempio seguente viene eseguito il mapping dell'account di accesso Mary5 alla credenziale EKM EKMProvider1.The following example maps the login Mary5 to the EKM credential EKMProvider1.

Si applica a: SQL Server 2008SQL Server 2008 tramite SQL Server 2017SQL Server 2017.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

F.F. Sblocco di un account di accessoUnlocking a login

Per sbloccare un account di accesso di SQL ServerSQL Server eseguire l'istruzione seguente, sostituendo **** con la password dell'account desiderata.To unlock a SQL ServerSQL Server login, execute the following statement, replacing **** with the desired account password.

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.To unlock a login without changing the password, turn the check policy off and then on again.

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

G.G. Modifica della password di un account di accesso mediante HASHEDChanging the password of a login using HASHED

Nell'esempio seguente viene modificata la password dell'account di accesso TestUser con un valore con hash.The following example changes the password of the TestUser login to an already hashed value.

Si applica a: SQL Server 2008SQL Server 2008 tramite SQL Server 2017SQL Server 2017.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

ALTER LOGIN TestUser WITH
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

Vedere ancheSee Also