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.
Wichtig
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 stattdessen CREATE LOGIN.
Sicherheitshinweis |
---|
Verwenden Sie nach Möglichkeit die Windows-Authentifizierung. |
Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version). |
Transact-SQL-Syntaxkonventionen
Syntax
sp_addlogin [ @loginame = ] 'login'
[ , [ @passwd = ] 'password' ]
[ , [ @defdb = ] 'database' ]
[ , [ @deflanguage = ] 'language' ]
[ , [ @sid = ] sid ]
[ , [ @encryptopt = ] 'encryption_option' ]
[;]
Argumente
[ @loginame= ] 'login'
Der Name der Anmeldung. login ist vom Datentyp sysname und hat keinen Standardwert.[ @passwd= ] 'password'
Das Anmeldekennwort. password ist vom Datentyp sysname. Der Standardwert ist NULL.Sicherheitshinweis 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'
Die Standardsprache der Anmeldung. 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'
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). Die folgenden Werte sind möglich: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 Upgradezwecken.
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 |
---|---|
Fügt einen Windows-Benutzer oder eine Windows-Gruppe hinzu. |
|
Ändert das Kennwort eines Benutzers. |
|
Ändert die Standarddatenbank eines Benutzers. |
|
Ändert die Standardsprache eines Benutzers. |
Berechtigungen
Setzt die ALTER ANY LOGIN-Berechtigung voraus.
Beispiele
A.Erstellen einer SQL Server-Anmeldung
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 einer SQL Server-Anmeldung 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 einer SQL Server-Anmeldung mit einer anderen Standardsprache
Im folgenden Beispiel wird ein SQL Server-Anmeldename für den Benutzer TzTodorov mit dem Kennwort 709hLKH7chjfwv erstellt; dabei werden AdventureWorks2012 als Standarddatenbank und Bulgarian als Standardsprache angegeben.
EXEC sp_addlogin 'TzTodorov', '709hLKH7chjfwv', 'AdventureWorks2012', N'български'
D.Erstellen einer SQL Server-Anmeldung 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 AdventureWorks2012 als Standarddatenbank, us_english als Standardsprache und 0x0123456789ABCDEF0123456789ABCDEF als SID angegeben.
EXEC sp_addlogin 'Michael', 'B548bmM%f6', 'AdventureWorks2012', 'us_english', 0x0123456789ABCDEF0123456789ABCDEF