sp_addlogin (Transact-SQL)

Erstellt einen neuen SQL Server-Anmeldenamen, der es einem Benutzer ermöglicht, eine Verbindung mit einer Instanz von SQL Server mithilfe der SQL Server-Authentifizierung herzustellen.

Wichtiger HinweisWichtig

Diese Funktion wird in zukünftigen Versionen von Microsoft SQL Server nicht mehr bereitgestellt. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie das Ändern von Anwendungen, in denen es zurzeit verwendet wird. Verwenden Sie anstelle dessen CREATE LOGIN.

SicherheitshinweisSicherheitshinweis

Verwenden Sie nach Möglichkeit die Windows-Authentifizierung.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_addlogin [ @loginame = ] 'login' 
    [ , [ @passwd = ] 'password' ] 
    [ , [ @defdb = ] 'database' ] 
    [ , [ @deflanguage = ] 'language' ] 
    [ , [ @sid = ] sid ] 
    [ , [ @encryptopt= ] 'encryption_option' ] 

Argumente

  • [ @loginame = ] 'login'
    Ist der Anmeldename. login ist vom Datentyp sysname und besitzt keinen Standardwert.

  • [ @passwd = ] 'password'
    Ist das Kennwort des Anmeldenamens. password ist vom Datentyp sysname; der Standardwert ist NULL.

    SicherheitshinweisSicherheitshinweis

    Verwenden Sie kein leeres Kennwort. Verwenden Sie ein sicheres Kennwort.

  • [ @defdb = ] 'database'
    Ist die Standarddatenbank des Anmeldenamens (die Datenbank, mit der der Anmeldename nach dem Anmelden zuerst verbunden wird). database ist vom Datentyp sysname; der Standardwert ist master.

  • [ @deflanguage = ] 'language'
    Ist die Standardsprache des Anmeldenamens. language ist vom Datentyp sysname; der Standardwert ist NULL. Wenn language nicht angegeben ist, wird language für den neuen Anmeldenamen standardmäßig auf die aktuelle Standardsprache des Servers festgelegt.

  • [ @sid = ] 'sid'
    Ist die Sicherheits-ID (SID). sid ist vom Datentyp varbinary(16); der Standardwert ist NULL. Wenn sid den Wert NULL hat, erzeugt das System eine SID für den neuen Anmeldenamen. Trotz der Verwendung des varbinary-Datentyps müssen Werte ungleich NULL genau 16 Byte lang sein und dürfen noch nicht vorhanden sein. Die Angabe von sid ist hilfreich, wenn Sie beispielsweise ein Skript erstellen oder SQL Server-Anmeldenamen auf andere Server verschieben und die Anmeldenamen auf verschiedenen Servern die gleiche SID haben sollen.

  • [ @encryptopt = ] 'encryption_option'
    Gibt an, ob das Kennwort als Klartext oder als Hash des Klartextkennworts weitergegeben wird. Dabei ist zu beachten, dass keine Verschlüsselung stattfindet. Der Begriff "verschlüsseln" wird in diesem Zusammenhang aus Gründen der Abwärtskompatibilität verwendet. Wenn ein Klartextkennwort übergeben wird, geschieht dies in Form eines Hashs. Der Hash wird gespeichert. encryption_option ist vom Datentyp varchar(20) und kann einen der folgenden Werte annehmen.

    Wert

    Beschreibung

    NULL

    Das Kennwort wird als Klartext übergeben. Dies ist die Standardeinstellung.

    skip_encryption

    Es wurde bereits ein Hashwert aus dem Kennwort erstellt. Database Engine (Datenbankmodul) sollte den Wert ohne erneutes Hashing speichern.

    skip_encryption_old

    Es wurde ein Hashwert des bereitgestellten Kennworts von einer früheren Version von SQL Server erstellt. Database Engine (Datenbankmodul) sollte den Wert ohne erneutes Hashing speichern. Diese Option dient lediglich Aktualisierungszwecken.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

SQL Server-Anmeldenamen können zwischen 1 und 128 Zeichen (einschließlich Buchstaben, Sonderzeichen und Ziffern) enthalten. Anmeldenamen können keinen umgekehrten Schrägstrich enthalten (\), dürfen keine reservierten Anmeldenamen, z. B. sa oder public, bereits vorhandene Anmeldenamen, NULL oder eine leere Zeichenfolge ('') sein.

Wenn der Name einer Standarddatenbank angegeben wird, ist die Verbindung mit dieser Datenbank ohne das Ausführen der USE-Anweisung möglich. Sie können die Standarddatenbank jedoch erst verwenden, wenn Sie vom Datenbankbesitzer Zugriffsrechte für diese Datenbank erhalten haben (mithilfe von sp_adduser, sp_addrolemember oder sp_addrole).

Die SID ist ein GUID, die den Anmeldenamen auf dem Server eindeutig identifiziert.

Wird die Standardsprache des Servers geändert, ändert sich dadurch nicht die Standardsprache der bestehenden Anmeldenamen. Verwenden Sie sp_configure, um die Standardsprache des Servers zu ändern.

Die Verwendung von skip_encryption zum Unterdrücken des Kennworthashings ist dann nützlich, wenn beim Hinzufügen des Anmeldenamens zu SQL Server bereits ein Hashwert aus dem Kennwort erstellt wurde. Verwenden Sie skip_encryption_old, wenn ein Hashwert aus dem bereitgestellten Kennwort von einer früheren Version von SQL Server erstellt wurde.

sp_addlogin kann nicht innerhalb einer benutzerdefinierten Transaktion ausgeführt werden.

In der folgenden Tabelle werden verschiedene gespeicherte Prozeduren angezeigt, die mit sp_addlogin verwendet werden.

Gespeicherte Prozedur

Beschreibung

sp_grantlogin

Fügt einen Windows-Benutzer oder eine Windows-Gruppe hinzu.

sp_password

Ändert das Kennwort eines Benutzers.

sp_defaultdb

Ändert die Standarddatenbank eines Benutzers.

sp_defaultlanguage

Ändert die Standardsprache eines Benutzers.

Berechtigungen

Setzt die ALTER ANY LOGIN-Berechtigung voraus.

Beispiele

A. Erstellen eines SQL Server-Anmeldenamens

Im folgenden Beispiel wird ein SQL Server-Anmeldename für den Benutzer Victoria mit dem Kennwort B1r12-36 erstellt, ohne dass eine Standarddatenbank angegeben wird.

EXEC sp_addlogin 'Victoria', 'B1r12-36';
GO

B. Erstellen eines SQL Server-Anmeldenamens mit einer Standarddatenbank

Im folgenden Beispiel wird ein SQL Server-Anmeldename für den Benutzer Albert mit dem Kennwort B5432-3M6 erstellt; dabei wird corporate als Standarddatenbank angegeben.

EXEC sp_addlogin 'Albert', 'B5432-3M6', 'corporate';
GO

C. Erstellen eines SQL Server-Anmeldenamens mit einer anderen Standardsprache

Im folgenden Beispiel wird ein SQL Server-Anmeldename für den Benutzer TzTodorov mit dem Kennwort 709hLKH7chjfwv erstellt; dabei werden AdventureWorks als Standarddatenbank und Bulgarian als Standardsprache angegeben.

EXEC sp_addlogin 'TzTodorov', '709hLKH7chjfwv', 'AdventureWorks', N'български'

B. Erstellen eines SQL Server-Anmeldenamens mit einer bestimmten SID

Im folgenden Beispiel wird ein SQL Server-Anmeldename für den Benutzer Michael mit dem Kennwort B548bmM%f6 erstellt; dabei werden AdventureWorks als Standarddatenbank, us_english als Standardsprache und 0x0123456789ABCDEF0123456789ABCDEF als SID angegeben.

EXEC sp_addlogin 'Michael', 'B548bmM%f6', 'AdventureWorks', 'us_english', 0x0123456789ABCDEF0123456789ABCDEF