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
, DENY
und 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 Vidur
hinzugefü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 Arvind
ein 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';