ALTER LOGIN (Transact-SQL) - Sistema piattaforma di analisi (PDW)

Si applica a:Piattaforma di strumenti analitici (PDW)

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

Annotazioni

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

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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

Arguments

login_name

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

ENABLE | DISABILITARE

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

PASSWORD = 'password'

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

OLD_PASSWORD = 'old_password'

Si applica solo agli account di accesso di SQL Server. Password corrente dell'account di accesso a cui verrà assegnata una nuova password. 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 richiede una password aggiornata la prima volta che viene usato l'account di accesso modificato.

NOME = login_name

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

CHECK_EXPIRATION = { ON | OFF }

Si applica solo agli account di accesso di SQL Server. Specifica se i criteri di scadenza 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.

SBLOCCA

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

Osservazioni:

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

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

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

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

  • CHECK_EXPIRATION è impostato anche su OFF.
  • 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 riesce.

Se CHECK_POLICY è impostato su OFF, CHECK_EXPIRATION non può essere impostato su ON. Una dichiarazione che prevede questa combinazione di opzioni fallisce ALTER LOGIN .

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

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

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

Autorizzazioni

Richiede ALTERARE QUALSIASI LOGIN permesso.

Se l'opzione CREDENTIAL viene utilizzata, richiede anche ALTERARE QUALSIASI CREDENTIAL permesso.

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

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

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

Esempi

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

A. Abilitare un account di accesso disabilitato

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

ALTER LOGIN Mary5 ENABLE;

B. Modificare la password di un account di accesso

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

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

C. Modificare il nome di un account di accesso

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

ALTER LOGIN Mary5 WITH NAME = John2;

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

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

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

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

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

Si applica a: SQL Server.

ALTER LOGIN Mary5 ADD CREDENTIAL EKMProvider1;
GO

F. Sbloccare un account di accesso

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

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

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

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;

ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;
GO

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

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

Si applica a: SQL Server.

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO