sp_addlogin (Transact-SQL)
Gilt für: SQL Server
Erstellt eine neue SQL Server-Anmeldung, mit der ein Benutzer mithilfe der SQL Server-Authentifizierung eine Verbindung mit einer Sql Server-Instanz herstellen kann.
Wichtig
Diese Funktion wird in einer zukünftigen Version von SQL Serverentfernt. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden. Verwenden Sie stattdessen CREATE LOGIN .
Wichtig
Verwenden Sie nach Möglichkeit die Windows-Authentifizierung.
Transact-SQL-Syntaxkonventionen
Syntax
sp_addlogin
[ @loginame = ] N'loginame'
[ , [ @passwd = ] N'passwd' ]
[ , [ @defdb = ] N'defdb' ]
[ , [ @deflanguage = ] N'deflanguage' ]
[ , [ @sid = ] sid ]
[ , [ @encryptopt = ] 'encryptopt' ]
[ ; ]
Argumente
[ @loginame = ] N'loginame'
Der Name der Anmeldung. @loginame ist "sysname" ohne Standard.
[ @passwd = ] N'passwd'
Das Anmeldekennwort. @passwd ist "sysname" mit einem Standardwert von NULL
.
Wichtig
Verwenden Sie kein leeres Kennwort. Verwenden Sie ein sicheres Kennwort.
[ @defdb = ] N'defdb'
Die Standarddatenbank der Anmeldung (die Datenbank, mit der die Anmeldung nach der Anmeldung zuerst verbunden ist). @defdb ist "sysname" mit der Standardeinstellung "master
.
[ @deflanguage = ] N'deflanguage'
Die Standardsprache der Anmeldung. @deflanguage ist "sysname" mit dem Standardwert "NULL
. Wenn @deflanguage nicht angegeben ist, wird die Standard- @deflanguage der neuen Anmeldung auf die aktuelle Standardsprache des Servers festgelegt.
[ @sid = ] sid
Die Sicherheitsidentifikationsnummer (SID). @sid ist varbinary(16) mit einem Standardwert von NULL
. Wenn @sid ist NULL
, generiert das System eine SID für die neue Anmeldung. Trotz der Verwendung eines varbinären Datentyps müssen andere Werte als NULL
genau 16 Bytes lang sein und können nicht bereits vorhanden sein. Das Angeben von @sid ist z. B. hilfreich, wenn Sie SQL Server-Anmeldungen von einem Server auf einen anderen skripten oder verschieben und die Anmeldungen dieselbe SID auf verschiedenen Servern haben sollen.
[ @encryptopt = ] 'encryptopt'
Gibt an, ob das Kennwort als Klartext oder als Hash des Klartextkennworts weitergegeben wird. Es findet keine Verschlüsselung statt. Der Begriff "verschlüsseln" wird in diesem Zusammenhang aus Gründen der Abwärtskompatibilität verwendet. Wenn ein Klartextkennwort übergeben wird, wird es hashed. Der Hash wird gespeichert. @encryptopt ist varchar(20) und kann einer der folgenden Werte sein.
Wert | Beschreibung |
---|---|
NULL (Standardwert) |
Das Kennwort wird als Klartext übergeben. |
skip_encryption |
Es wurde bereits ein Hashwert aus dem Kennwort erstellt. Der Datenbank-Engine sollte den Wert speichern, ohne ihn erneut zu speichern. |
skip_encryption_old |
Das angegebene Kennwort wurde von einer früheren Version von SQL Server hashed. Der Datenbank-Engine sollte den Wert speichern, ohne ihn erneut zu speichern. Diese Option dient lediglich Upgradezwecken. |
Rückgabecodewerte
0
(erfolgreich) oder 1
Fehler.
Hinweise
SQL Server-Anmeldungen können zwischen 1 und 128 Zeichen enthalten, einschließlich Buchstaben, Symbolen und Zahlen. Anmeldungen können keinen umgekehrten Schrägstrich (\
) enthalten; es handelt sich um einen reservierten Anmeldenamen, z . B. sa oder öffentlich oder bereits vorhanden oder eine NULL
leere Zeichenfolge.
Wenn der Name einer Standarddatenbank angegeben wird, können Sie eine Verbindung mit der angegebenen Datenbank herstellen, ohne die USE
Anweisung auszuführen. Sie können die Standarddatenbank jedoch erst verwenden, wenn Sie dem Datenbankbesitzer (mithilfe von sp_adduser, sp_addrolemember) oder sp_addrole Zugriff auf diese Datenbank gewährt haben.
Die SID-Nummer ist eine GUID, die die Anmeldung auf dem Server eindeutig identifiziert.
Das Ändern der Standardsprache des Servers ändert nicht die Standardsprache vorhandener Anmeldungen. Verwenden Sie sp_configure, um die Standardsprache des Servers zu ändern.
Die Verwendung skip_encryption
zum Unterdrücken von Kennworthashing ist nützlich, wenn das Kennwort bereits beim Hinzufügen der Anmeldung zu SQL Server hashed ist. Wenn das Kennwort von einer früheren Version von SQL Server hashed wurde, verwenden Sie skip_encryption_old
.
sp_addlogin
kann nicht innerhalb einer benutzerdefinierten Transaktion ausgeführt werden.
In der folgenden Tabelle sind mehrere gespeicherte Prozeduren aufgeführt, die mit sp_addlogin
.
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
Erfordert die ALTER ANY LOGIN-Berechtigung.
Beispiele
A. Erstellen einer SQL Server-Anmeldung
Im folgenden Beispiel wird eine SQL Server-Anmeldung für den Benutzer Victoria
mit einem Kennwort von B1r12-36
, ohne eine Standarddatenbank anzugeben, erstellt.
EXEC sp_addlogin 'Victoria', 'B1r12-36';
GO
B. Erstellen einer SQL Server-Anmeldung mit einer Standarddatenbank
Im folgenden Beispiel wird eine SQL Server-Anmeldung für den Benutzer Albert
mit einem Kennwort B5432-3M6
und einer Standarddatenbank von corporate
.
EXEC sp_addlogin 'Albert', 'B5432-3M6', 'corporate';
GO
C. Erstellen einer SQL Server-Anmeldung mit einer anderen Standardsprache
Im folgenden Beispiel wird eine SQL Server-Anmeldung für den Benutzer TzTodorov
mit einem Kennwort von 709hLKH7chjfwv
, einer Standarddatenbank von AdventureWorks2022
und einer Standardsprache von Bulgarian
.
EXEC sp_addlogin 'TzTodorov', '709hLKH7chjfwv', 'AdventureWorks2022', N'български'
D: Erstellen einer SQL Server-Anmeldung mit einer bestimmten SID
Im folgenden Beispiel wird eine SQL Server-Anmeldung für den Benutzer Michael
mit einem Kennwort von B548bmM%f6
, einer Standarddatenbank mit AdventureWorks2022
, einer Standardsprache von us_english
, und einer SID von 0x0123456789ABCDEF0123456789ABCDEF
.
EXEC sp_addlogin 'Michael', 'B548bmM%f6', 'AdventureWorks2022', 'us_english', 0x0123456789ABCDEF0123456789ABCDEF