sp_adduser (Transact-SQL)

Gilt für:SQL Server

Fügt der aktuellen Datenbank einen neuen Benutzer hinzu.

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 USER .

Transact-SQL-Syntaxkonventionen

Syntax

sp_adduser
    [ @loginame = ] N'loginame'
    [ , [ @name_in_db = ] N'name_in_db' ]
    [ , [ @grpname = ] N'grpname' ]
[ ; ]

Argumente

[ @loginame = ] N'loginame'

Der Name des SQL Server-Anmelde- oder Windows-Kontos. @loginame ist "sysname" ohne Standard. @loginame muss ein vorhandenes SQL Server-Anmelde- oder Windows-Konto sein.

[ @name_in_db = ] N'name_in_db'

Der Name für den neuen Datenbankbenutzer. @name_in_db ist "sysname" mit der Standardeinstellung "NULL. Wenn @name_in_db nicht angegeben ist, wird standardmäßig der Name des neuen Datenbankbenutzers auf @loginame festgelegt. Wenn Sie @name_in_db angeben, erhält der neue Benutzer einen Namen in der Datenbank, der sich vom Anmeldenamen auf Serverebene unterscheidet.

[ @grpname = ] N'grpname'

Die Datenbankrolle, deren Mitglied der neue Benutzer wird. @grpname ist "sysname" mit einem Standardwert von NULL. @grpname muss eine gültige Datenbankrolle in der aktuellen Datenbank sein.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Hinweise

sp_adduser erstellt außerdem ein Schema, das den Namen des Benutzers darstellt.

Nachdem ein Benutzer hinzugefügt wurde, verwenden Sie die GRANT, DENYund REVOKE Anweisungen, um die Berechtigungen zu definieren, die die vom Benutzer ausgeführten Aktivitäten steuern.

Dient sys.server_principals zum Anzeigen einer Liste gültiger Anmeldungen.

Dient sp_helprole zum Anzeigen einer Liste der gültigen Rollennamen. Bei Angabe einer Rolle erhält der Benutzer automatisch die für diese Rolle definierten Berechtigungen. Wenn keine Rolle angegeben ist, erhält der Benutzer die Berechtigungen, die der standardmäßigen öffentlichen Rolle gewährt werden. Um einer Rolle einen Benutzer hinzuzufügen, muss ein Wert für die @name_in_db angegeben werden. (@name_in_db können mit @loginame identisch sein.)

Benutzergast ist bereits in jeder Datenbank vorhanden. Das Hinzufügen von Benutzergast aktiviert diesen Benutzer, wenn er zuvor deaktiviert war. Standardmäßig ist der Gast des Benutzers in neuen Datenbanken deaktiviert.

sp_adduser kann 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-Berechtigungen 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 der vorhandenen SQL Server-Anmeldung Vidurhinzugefügt.

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

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

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

EXEC sp_adduser 'Arvind';

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

Im folgenden Beispiel wird der aktuellen Datenbank sql Server-Anmeldung BjornR hinzugefügt, der ein Benutzername istBjorn, und der Production Datenbankrolle Datenbankbenutzer Bjorn hinzugefügt.

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