ALTER LOGIN (Transact-SQL)

Ändert die Eigenschaften eines SQL Server-Anmeldekontos.

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

  • login_name
    Gibt den Namen des SQL Server-Anmeldenamens an, der geändert wird. Domänenanmeldungen müssen in Klammern eingeschlossen werden [Domäne\Benutzer].

  • ENABLE | DISABLE
    Aktiviert oder deaktiviert diesen Anmeldenamen. Das Deaktivieren eines Anmeldenamens wirkt sich nicht auf das Verhalten der bereits verbundenen Anmeldenamen aus. Deaktivierte Anmeldenamen behalten ihre Berechtigungen bei und sind weiterhin für den Identitätswechsel verfügbar.

  • PASSWORD ='password'
    Gilt nur für SQL Server-Anmeldenamen. Gibt das Kennwort für den Anmeldenamen an, der geändert wird. Bei Kennwörtern wird nach Groß- und Kleinschreibung unterschieden.

  • PASSWORD **=**hashed_password
    Gilt nur für das HASHED-Schlüsselwort. Gibt den Hashwert des Kennworts für den Anmeldenamen an, der erstellt wird.

  • HASHED
    Gilt nur für SQL Server-Anmeldenamen. Gibt an, dass das nach dem PASSWORD-Argument eingegebene Kennwort bereits einen Hashwert darstellt. Wenn diese Option nicht ausgewählt wird, wird aus der als Kennwort eingegebenen Zeichenfolge vor dem Speichern in der Datenbank ein Hashwert erstellt. Diese Option sollte nur für die Anmeldungssynchronisierung zwischen zwei Servern verwendet werden. Verwenden Sie die HASHED-Option nicht, um Kennwörter routinemäßig zu ändern.

  • OLD_PASSWORD ='oldpassword'
    Gilt nur für SQL Server-Anmeldenamen. Das aktuelle Kennwort des Anmeldenamens, dem ein neues Kennwort zugewiesen wird. Bei Kennwörtern wird nach Groß- und Kleinschreibung unterschieden.

  • MUST_CHANGE
    Gilt nur für SQL Server-Anmeldenamen. Falls diese Option angegeben wird, fordert SQL Server zur Eingabe eines aktualisierten Kennworts auf, wenn der geänderte Anmeldename zum ersten Mal verwendet wird.

  • DEFAULT_DATABASE **=**database
    Gibt eine Standarddatenbank an, die dem Anmeldenamen zugewiesen werden soll.

  • DEFAULT_LANGUAGE **=**language
    Gibt eine Standardsprache an, die dem Anmeldenamen zugewiesen werden soll.

  • NAME = login_name
    Der neue Name des Anmeldenamens, der umbenannt wird. Falls es sich dabei um einen Windows-Anmeldenamen handelt, muss die SID des entsprechenden Windows-Prinzipals für den neuen Namen mit der SID übereinstimmen, die dem Anmeldenamen in SQL Server zugeordnet ist. Der neue Name eines SQL Server-Anmeldenamens darf keinen umgekehrten Schrägstrich (\) enthalten.

  • CHECK_EXPIRATION = { ON | OFF }
    Gilt nur für SQL Server-Anmeldenamen. Gibt an, ob die Richtlinie für das Ablaufen von Kennwörtern für diesen Anmeldenamen erzwungen werden soll. Der Standardwert ist OFF.

  • CHECK_POLICY = { ON | OFF }
    Gilt nur für SQL Server-Anmeldenamen. Gibt an, dass die Windows-Kennwortrichtlinien des Computers, auf dem SQL Server ausgeführt wird, für diesen Anmeldenamen erzwungen werden sollen. Der Standardwert ist ON.

  • CREDENTIAL = credential_name
    Die Anmeldeinformationen, die einem SQL Server-Anmeldenamen zugeordnet werden sollen. Die Anmeldeinformationen müssen bereits auf dem Server vorhanden sein. Weitere Informationen finden Sie unter Anmeldeinformationen (Datenbankmodul). Der sa-Anmeldung können Anmeldeinformationen nicht zugeordnet werden.

  • NO CREDENTIAL
    Entfernt vorhandene Zuordnungen des Anmeldenamens zu Serveranmeldeinformationen. Weitere Informationen finden Sie unter Anmeldeinformationen (Datenbankmodul).

  • UNLOCK
    Gilt nur für SQL Server-Anmeldenamen. Gibt an, dass die Sperre eines Anmeldenamens aufgehoben wird.

  • ADD CREDENTIAL
    Fügt Anmeldeinformationen eines Anbieters von erweiterbarer Schlüsselverwaltung (Extensible Key Management EKM) zur Anmeldung hinzu. Weitere Informationen finden Sie unter Erweiterbare Schlüsselverwaltung (Extensible Key Management, EKM).

  • DROP CREDENTIAL
    Entfernt Anmeldeinformationen eines Anbieters von erweiterbarer Schlüsselverwaltung (Extensible Key Management EKM) aus der Anmeldung. Weitere Informationen finden Sie unter Erweiterbare Schlüsselverwaltung (Extensible Key Management, EKM).

Hinweise

Wenn CHECK_POLICY auf ON festgelegt ist, kann das HASHED-Argument nicht verwendet werden.

Wenn CHECK_POLICY in ON geändert wird, passiert Folgendes:

  • Der Kennwortverlauf wird mit dem Wert des aktuellen Kennworthashes initialisiert.

Wenn CHECK_POLICY in OFF geändert wird, passiert Folgendes:

  • CHECK_EXPIRATION wird ebenfalls auf OFF festgelegt.

  • Der Kennwortverlauf wird gelöscht.

  • Der Wert von lockout_time wird zurückgesetzt.

Falls MUST_CHANGE angegeben wird, müssen CHECK_EXPIRATION und CHECK_POLICY auf ON festgelegt werden. Andernfalls erzeugt die Anweisung einen Fehler.

Falls CHECK_POLICY auf OFF festgelegt ist, kann CHECK_EXPIRATION nicht auf ON festgelegt werden. Eine ALTER LOGIN-Anweisung mit dieser Kombination von Optionen erzeugt einen Fehler.

Sie können ALTER_LOGIN mit dem DISABLE-Argument nicht dazu verwenden, den Zugriff auf eine Windows-Gruppe zu verweigern. ALTER_LOGIN [domain\group] DISABLE gibt zum Beispiel die folgende Fehlermeldung zurück:

"Meldung 15151, Ebene 16, Status 1, Zeile 1"

"Kann Anmeldenamen 'Domain\Group' nicht ändern, da er nicht vorhanden ist oder da Sie über keine Berechtigung verfügen."

Dies ist beabsichtigt.

Berechtigungen

Erfordert die ALTER ANY LOGIN-Berechtigung.

Falls die Option CREDENTIAL verwendet wird, ist auch die ALTER ANY CREDENTIAL-Berechtigung erforderlich.

Wenn der zu ändernde Anmeldename ein Mitglied der festen Serverrolle sysadmin oder ein Empfänger der CONTROL SERVER-Berechtigung ist, ist auch die CONTROL SERVER-Berechtigung für die folgenden Änderungen erforderlich:

  • Zurücksetzen des Kennworts ohne Eingabe des alten Kennworts.

  • Aktivieren von MUST_CHANGE, CHECK_POLICY oder CHECK_EXPIRATION.

  • Ändern des Anmeldenamens.

  • Aktivieren oder Deaktivieren des Anmeldenamens.

  • Zuordnen des Anmeldenamens zu anderen Anmeldeinformationen.

Ein Prinzipal kann das Kennwort, die Standardsprache und die Standarddatenbank für seinen eigenen Anmeldenamen ändern.

Beispiele

A.Aktivieren eines deaktivierten Anmeldenamens

Im folgenden Beispiel wird der Anmeldename Mary5 aktiviert.

ALTER LOGIN Mary5 ENABLE;

B.Ändern des Kennwortes eines Anmeldenamens

Im folgenden Beispiel wird das Kennwort des Anmeldenamens Mary5 in ein sicheres Kennwort geändert.

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

C.Ändern des Namens einer Anmeldung

Im folgenden Beispiel wird der Name des Anmeldenamens Mary5 in John2 geändert.

ALTER LOGIN Mary5 WITH NAME = John2;

D.Zuordnen eines Anmeldenamens zu Anmeldeinformationen

Im folgenden Beispiel wird der Anmeldename John2 den Anmeldeinformationen Custodian04 zugeordnet.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E.Zuordnen eines Anmeldenamens zu Anmeldeinformationen der erweiterbaren Schlüsselverwaltung

Im folgenden Beispiel wird der Anmeldename Mary5 den EKM-Anmeldeinformationen EKMProvider1 zugeordnet.

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

F.Entsperren einer Anmeldung

Um eine SQL Server-Anmeldung zu entsperren, führen Sie die folgende Anweisung aus und ersetzen **** durch das gewünschte Kontokennwort.

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

Um eine Anmeldung zu entsperren, ohne das Kennwort zu ändern, deaktivieren Sie die Überprüfungsrichtlinie, und aktivieren Sie diese dann erneut.

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

G.Ändern des Kennworts für eine Anmeldung mit HASHED

Im folgenden Beispiel wird das Kennwort für die TestUser-Anmeldung in einen bereits vorhandenen Hashwert geändert.

ALTER LOGIN TestUser WITH 
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

Siehe auch

Verweis

CREATE LOGIN (Transact-SQL)

DROP LOGIN (Transact-SQL)

CREATE CREDENTIAL (Transact-SQL)

EVENTDATA (Transact-SQL)

Konzepte

Anmeldeinformationen (Datenbankmodul)

Erweiterbare Schlüsselverwaltung (Extensible Key Management, EKM)