Freigeben über


sp_adduser (Transact-SQL)

Fügt der aktuellen Datenbank einen neuen Benutzer hinzu.

Wichtiger HinweisWichtig

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 anstelle dessen CREATE USER.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

  • [ @loginame = ] 'login'
    Der Name der SQL Server-Anmeldung oder der Windows-Anmeldung. login ist vom Datentyp sysname und hat keinen Standardwert. login muss eine vorhandene SQL Server- oder Windows-Anmeldung sein.

  • [ @name_in_db = ] 'user'
    Der Name des neuen Datenbankbenutzers. user ist vom Datentyp sysname und hat den Standardwert NULL. Wenn user nicht angegeben ist, wird standardmäßig der login-Name als Name für den neuen Datenbankbenutzer verwendet. Durch Angabe von user erhält der neue Benutzer in der Datenbank einen anderen Namen als den Anmeldenamen auf Serverebene.

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

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

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 gültiger Anmeldenamen anzuzeigen.

Mit sp_helprole zeigen Sie eine Liste der gültigen Rollennamen an. Bei Angabe einer Rolle erhält der Benutzer automatisch die für diese Rolle definierten Berechtigungen. Wird keine Rolle angegeben, erhält der Benutzer die Berechtigungen, die der public-Standardrolle erteilt wurden. Wenn Sie einer Rolle einen Benutzer hinzufügen möchten, muss ein Wert für user name angegeben werden. (username kann mit login_id identisch sein.)

Der Benutzer guest ist bereits in jeder Datenbank vorhanden. Durch Hinzufügen des Benutzers guest wird dieser aktiviert, falls er zuvor deaktiviert war. Standardmäßig ist der Benutzer guest in neuen Datenbanken deaktiviert.

sp_adduser kann nicht innerhalb einer benutzerdefinierten Transaktion ausgeführt werden.

Der Benutzer guest kann nicht hinzugefügt werden, da der Benutzer guest bereits in jeder Datenbank vorhanden ist. Sie können den Benutzer guest aktivieren, indem Sie guest die CONNECT-Berechtigung wie folgt erteilen:

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 Rolle Recruiting in der aktuellen Datenbank hinzugefügt, wobei der vorhandene SQL Server-Anmeldename Vidur verwendet wird.

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

B. Hinzufügen eines Datenbankbenutzers mit derselben Anmelde-ID

Im folgenden Beispiel wird der Benutzer Arvind der aktuellen Datenbank für den SQL Server-Anmeldenamen Arvind hinzugefügt. Dieser Benutzer ist Mitglied der standardmäßigen public-Rolle.

EXEC sp_adduser 'Arvind'

C. Hinzufügen eines Datenbankbenutzers mit einem anderen Namen als dem Anmeldenamen auf Serverebene

Im folgenden Beispiel wird der SQL Server-Anmeldename BjornR der aktuellen Datenbank hinzugefügt, die den Benutzernamen Bjorn besitzt. Der Datenbankbenutzer Bjorn wird der Production-Datenbankrolle hinzugefügt.

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