sp_adduser (Transact-SQL)

Gilt für: SQL Server (alle unterstützten Versionen)

Fügt der aktuellen Datenbank einen neuen Benutzer hinzu.

Wichtig

Dieses Feature wird in einer künftigen Version von Microsoft SQL Server entfernt. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden. Verwenden Sie stattdessen CREATE USER .

Transact-SQL-Syntaxkonventionen

Syntax

  
sp_adduser [ @loginame = ] 'login'   
    [ , [ @name_in_db = ] 'user' ]   
    [ , [ @grpname = ] 'role' ]   

Argumente

[ @loginame = ] 'login'Der Name des SQL Server- oder Windows-Anmeldenamens. login ist vom Datentyp sysnameund hat keinen Standardwert. login muss eine vorhandene SQL Server- oder Windows-Anmeldung sein.

[ @name_in_db = ] 'user' Der Name des neuen Datenbankbenutzers. user is a sysname, mit dem Standardwert NULL. Wenn der Benutzer nicht angegeben ist, wird der Name des neuen Datenbankbenutzers standardmäßig auf den Anmeldenamen festgelegt. Wenn Benutzer angegeben wird, erhält der neue Benutzer einen anderen Namen in der Datenbank als den Anmeldenamen auf Serverebene.

[ @grpname = ] 'role' Die Datenbankrolle, deren Mitglied der neue Benutzer wird. role ist vom Datentyp sysnameund hat den Standardwert NULL. role muss eine gültige Datenbankrolle in der aktuellen Datenbank sein.

Rückgabecodewerte

„0“ (erfolgreich) oder „1“ (fehlerhaft)

Bemerkungen

sp_adduser erstellt auch ein Schema mit dem Namen des Benutzers.

Definieren Sie nach dem Hinzufügen eines Benutzers mit den Anweisungen GRANT, DENY und REVOKE die Berechtigungen für die Aktivitäten, die der Benutzer ausführen darf.

Verwenden Sie sys.server_principals , um eine Liste mit gültigen Anmeldenamen anzuzeigen.

Verwenden Sie sp_helprole , um eine Liste der gültigen Rollennamen anzuzeigen. Bei Angabe einer Rolle erhält der Benutzer automatisch die für diese Rolle definierten Berechtigungen. Wenn keine Rolle angegeben wird, erhält der Benutzer die Berechtigungen, die der öffentlichen Standardrolle gewährt werden. Um einer Rolle einen Benutzer hinzuzufügen, muss ein Wert für den Benutzernamen angegeben werden. (Benutzername kann mit login_id identisch sein.)

Benutzergast ist bereits in jeder Datenbank vorhanden. Das Hinzufügen eines Benutzergasts aktiviert diesen Benutzer, wenn er zuvor deaktiviert wurde. Standardmäßig ist der Benutzergast in neuen Datenbanken deaktiviert.

sp_adduser können nicht innerhalb einer benutzerdefinierten Transaktion ausgeführt werden.

Sie können keinen Gastbenutzer hinzufügen, da in jeder Datenbank bereits ein Gastbenutzer vorhanden ist. Um den Gastbenutzer zu aktivieren , erteilen Sie gast CONNECT-Berechtigung wie gezeigt:

GRANT CONNECT TO guest;  
GO  

Berechtigungen

Erfordert den Besitz der Datenbank.

Beispiele

A. Hinzufügen eines Datenbankbenutzers

Im folgenden Beispiel wird der Datenbankbenutzer Vidur der vorhandenen Recruiting Rolle in der aktuellen Datenbank mithilfe des vorhandenen SQL Server-Anmeldenamens Vidurhinzugefügt.

EXEC sp_adduser 'Vidur', 'Vidur', 'Recruiting';  

B. Hinzufügen eines Datenbankbenutzers mit der gleichen Anmelde-ID

Im folgenden Beispiel wird der aktuellen Datenbank ein Benutzer Arvind für die SQL Server Anmeldung Arvindhinzugefügt. Dieser Benutzer gehört zur öffentlichen Standardrolle.

EXEC sp_adduser 'Arvind';  

C. Hinzufügen eines Datenbankbenutzers mit einem anderen Namen als der Anmeldename auf Serverebene

Im folgenden Beispiel wird der aktuellen Datenbank mit dem Benutzernamen BjornSQL Server Anmeldung BjornR hinzugefügt und der Production Datenbankrolle ein Datenbankbenutzer Bjorn hinzugefügt.

EXEC sp_adduser 'BjornR', 'Bjorn', 'Production';  

Weitere Informationen

Gespeicherte Sicherheitsprozeduren (Transact-SQL)
sys.server_principals (Transact-SQL)
sp_addrole (Transact-SQL)
CREATE USER (Transact-SQL)
sp_dropuser (Transact-SQL)
sp_grantdbaccess (Transact-SQL)
sp_grantlogin (Transact-SQL)
Gespeicherte Systemprozeduren (Transact-SQL)