USER (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-Datenbank in Microsoft Fabric

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.

Transact-SQL-Syntaxkonventionen

Syntax

USER  

Rückgabetypen

nvarchar(128)

Hinweise

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

Verwenden USER Sie mit DEFAULT Nebenbedingungen entweder in den CREATE TABLE oder-Anweisungen ALTER TABLE oder als beliebige Standardfunktion.

USER gibt immer den Namen des aktuellen Kontexts zurück. Wenn er nach einer EXECUTE AS Aussage aufgerufen wird, USER gibt er den Namen des personifizierten Kontexts zurück.

Wenn ein Windows-Principal über die Mitgliedschaft in einer Gruppe auf die Datenbank zuruft, USER gibt er den Namen des Windows-Prinzipals statt des Gruppennamens zurück.

Beispiele

A. Verwendung USER zur Rückgabe des Datenbankbenutzernamens

Das folgende Beispiel deklariert eine Variable als , charweist ihr den aktuellen Wert von USER zu und druckt die Variable dann mit einer Textbeschreibung aus.

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

Hier sehen Sie das Ergebnis.

-----------------------------------------------------------------------  
The current user's database username is: dbo  
 
(1 row(s) affected)

B. Verwendung USER mit DEFAULT Nebenbedingungen

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

USE AdventureWorks2022;  
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. Verwendung 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  

Hier sehen Sie das Ergebnis.

DBO
Mario
DBO

Weitere Informationen

ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
Sicherheitsfunktionen (Transact-SQL)
SESSION_USER (Transact-SQL)
SYSTEM_USER (Transact-SQL)
USER_NAME (Transact-SQL)