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 Victoriamit 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 Albertmit 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 TzTodorovmit einem Kennwort von 709hLKH7chjfwv, einer Standarddatenbank von AdventureWorks2022und 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 Michaelmit 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