Menü

sp_addlogin

Zurück | Ebene zurück

Beschreibung

Mit sp_addlogin wird ein Benutzerkonto (=Account) angelegt, dass einem Benutzer die Berechtigung gibt, sich über SQL-Authentifizierung am SQL-Server anzumelden. Dies funktioniert dementsprechend nur, wenn der SQL-Server auch diesen Authentifizierungs-Modus zulässt.

Nachdem für einen Benutzer mit sp_addlogin ein Konto angelegt wurde, kann dieser sich noch nicht an einer Datenbank anmelden. Hierzu müssen dem Benutzer noch mit sp_adduser die Berechtigung erteilt werden, sich an der betreffenden Datenbank anzumelden.

Syntax

sp_addlogin
   @loginame varchar(128),
   @passwd  varchar(128),
   @defdb varchar(128),
   @deflanguage varchar(128),
   @sid varbinary(16),
   @encryptopt varchar(20)

Argumente

@LoginName varchar(128)

Dieser Parameter vom Typ sysname muss angegeben werden.

In LoginName dürfen keine Schrägstriche oder reservierte Namen wie sa, public usw. verwendet werden, ebenso darf nicht der Wert NULL benutzt werden.

@passwd  varchar(128)
optional; default=NULL

Das Passwort vom Typ sysname muss nicht unbedingt angegeben werden. In diesem Fall wird es als NULL-Wert gespeichert. Wird ein Passwort angegeben, so wird dies standardmäßig verschlüsselt abgespeichert. Die Verschlüsselung kann über den Parameter @encryptopt beeinflusst werden.

@defdb varchar(128)
optional; default='master'

Zu jedem Login-Account kann eine Anmeldedatenbank angegeben werden. Der Parameter defdb ist vom Typ sysname. Wird keine Anmeldedatenbank übergeben, so wird die Standarddatenbank master als Anmeldedatenbank benutzt.

Diesen Default kann man in aller Regel belassen, da EULANDA® die Datenbank explizit über die UDL-Datei vorgibt.

@deflanguage varchar(128)
optional; default=NULL

Über deflanguage, die vom vom Datentyp sysname ist, kann einem Benutzer eine von der SQL-Server-Installation abweichende Sprache zugewiesen werden. Wird dieser Wert nicht übergeben, so wird dieser Wert als NULL gespeichert und es wird die Standardsprache des SQL-Server benutzt.

Sie sollten diesen Wert nicht angeben, also immer die Standardsprache benutzen.

@sid varbinary(16)
optional; default=NULL

Beim Anlegen eines Login-Accounts wird der Wert sid (=Sicherheits  ID, oder Security ID) normalerweise nicht angegeben. In diesem Fall erzeugt der SQL Server einen nicht benutzten eindeutigen Wert. Wird die sid angegeben, so muss dafür gesorgt werden, dass der Wert eindeutig und noch von keinem Login-Account verwendet wird.

Wird eine Datenbank auf einem anderen SQL-Server aktiviert (z.B. über Backup), udn sollen die dort enthaltenen Datenbankbenutzer auch im SQL-Server als Login-Account angelegt werden, so kann dies erfolgen, indem die dort verwendete sid beim Anlegen des Login-Accounts verwendet wird. Für den SQL-Server sind nicht nur die Namen des Accounts maßgeblich, sondern auch die sid. Beide müssen stimmen, damit der Login-Account auch Datenbank-Benutzer sein kann.

Obwohl sid vom Typ varbinary ist, müssen bei sid immer alle 16 Zeichen angegeben werden.

@encryptopt varchar(20)
optional; default=NULL

Über diesen Parameter kann die Art der Verschlüsselung für das Speichern des Passwortes angegeben werden.

NULL Bei Angabe von NULL wird die Verschlüsselung aktiviert, was der Standard ist.
skip_encryption Passworte werden unverschlüsselt gespeichert.
skip_encryption_old Passworte werden nach einem alten in SQL 7 benutzten Verfahren verschlüsselt gespeichert.

Rückgabetypen

Gibt den Datentyp der Argumente zurück.
 

0 Erfolgreich ausgeführt
1 Fehler beim Ausführen

Beispiel 1

EXEC sp_addlogin 'Eulanda', 'eulanda'
GO

Ein neues SQL-Benutzerkonto mit dem Namen Eulanda und Passwort eulanda wird angelegt. Das Konto darf hierbei nicht existieren.

Ausgabe:

Neue Anmeldung erstellt.

Beispiel 2

DECLARE @ret int
EXEC @ret=sp_addlogin 'Eulanda', 'eulanda'
SELECT @ret
GO

Hier wird die selbe Funktion mit den Parametern wie in Beispiel 1 aufgerufen, jedoch wird das Funktionsrgebnis der Variablen @ret zugewiesen. Das Ergebnis wird dann über den Select-Befehl ausgegeben. Bei 0 wurde die Funktion fehlerfrei ausgeführt.

Ausgabe:

Neue Anmeldung erstellt.

----------- 
0

(1 row(s) affected)
 

Hinweis

Ein Account wird mit sp_droplogin gelöscht.