USER (Transact-SQL)

Ermöglicht das Einfügen eines vom System bereitgestellten Werts für den Datenbankbenutzernamen des aktuellen Benutzers in eine Tabelle, wenn kein Standardwert angegeben ist.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

USER

Rückgabetypen

char

Hinweise

USER bietet die gleiche Funktionalität wie die USER_NAME-Systemfunktion.

Verwenden Sie die USER-Funktion mit DEFAULT-Einschränkungen in der CREATE TABLE- oder ALTER TABLE-Anweisung oder als beliebige Standardfunktion.

USER gibt immer den Namen des aktuellen Kontextes zurück. Wenn USER nach einer EXECUTE AS-Anweisung aufgerufen wird, wird der Name des Kontextes zurückgegeben, dessen Identität angenommen wurde.

Greift ein Windows-Prinzipal über die Mitgliedschaft in einer Gruppe auf die Datenbank zu, gibt USER den Namen des Windows-Prinzipals statt des Namens der Gruppe zurück.

Beispiele

A. Verwenden von USER zum Zurückgeben des Datenbankbenutzernamens

Im folgenden Beispiel wird eine Variable als char-Datentyp deklariert, ihr wird der aktuelle Wert von USER zugewiesen, und anschließend wird die Variable mit einer Textbeschreibung gedruckt.

DECLARE @usr char(30)
SET @usr = user
SELECT 'The current user''s database username is: '+ @usr
GO

Dies ist das Resultset.

----------------------------------------------------------------------- 
The current user's database username is: dbo                            

(1 row(s) affected)

B. Verwenden von USER mit DEFAULT-Einschränkungen

Im folgenden Beispiel wird eine Tabelle mit USER als DEFAULT-Einschränkung für den Verkäufer in einer Zeile mit Verkaufszahlen erstellt.

USE AdventureWorks;
GO
CREATE TABLE inventory22
(
 part_id int IDENTITY(100, 1) NOT NULL,
 description varchar(30) NOT NULL,
 entry_person varchar(30) NOT NULL DEFAULT USER 
)
GO
INSERT inventory22 (description)
VALUES ('Red pencil')
INSERT inventory22 (description)
VALUES ('Blue pencil')
INSERT inventory22 (description)
VALUES ('Green pencil')
INSERT inventory22 (description)
VALUES ('Black pencil')
INSERT inventory22 (description)
VALUES ('Yellow pencil')
GO

Im Folgenden wird die Abfrage zur Auswahl aller Informationen aus der inventory22-Tabelle aufgeführt:

SELECT * FROM inventory22 ORDER BY part_id;
GO

Im Folgenden wird das Resultset aufgeführt (beachten Sie den entry-person-Wert):

part_id     description                    entry_person                   
----------- ------------------------------ -------------------------
100         Red pencil                     dbo                            
101         Blue pencil                    dbo                            
102         Green pencil                   dbo                            
103         Black pencil                   dbo                            
104         Yellow pencil                  dbo                            

(5 row(s) affected)

C. Verwenden von USER in Kombination mit EXECUTE AS

Im folgenden Beispiel wird das Verhalten von USER bei Aufruf in einer Sitzung mit Identitätswechsel gezeigt.

SELECT USER;
GO
EXECUTE AS USER = 'Mario';
GO
SELECT USER;
GO
REVERT;
GO
SELECT USER;
GO

Dies ist das Resultset.

DBO
Mario
DBO