sp_adduser (Transact-SQL)
Fügt der aktuellen Datenbank einen neuen Benutzer hinzu.
Wichtig |
---|
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. |
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'