Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics 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)