USER (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-databas i Microsoft Fabric

Tillåter att ett systemtillhandahållet värde för databasanvändarnamnet för den aktuella användaren kan infogas i en tabell när inget standardvärde är specificerat.

Transact-SQL syntaxkonventioner

Syntax

USER  

Returtyper

nvarchar(128)

Anmärkningar

USER tillhandahåller samma funktionalitet som USER_NAME systemfunktionen.

Använd USER med DEFAULT begränsningar i antingen CREATE TABLE eller-satserna ALTER TABLE , eller använd som vilken standardfunktion som helst.

USER Returnerar alltid namnet på den aktuella kontexten. När den anropas efter ett EXECUTE AS påstående återvänder namnet USER på den imiterade kontexten.

Om en Windows-principal får tillgång till databasen genom medlemskap i en grupp, USER returnerar namnet på Windows-principalen istället för gruppens namn.

Examples

A. Använder USER för att returnera databasanvändarnamnet

Följande exempel deklarerar en variabel som char, tilldelar den det aktuella värdet av USER och skriver sedan ut variabeln med en textbeskrivning.

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

Här är resultatet.

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

B. Användning USER med DEFAULT restriktioner

Följande exempel skapar en tabell genom att använda USER som DEFAULT begränsning för säljaren i en försäljningsrad.

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  

Detta är frågan för att välja all information från inventory22 tabellen:

SELECT * FROM inventory22 ORDER BY part_id;  
GO  

Här är resultatmängden (notera entry-person värdet):

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. Använda USER i kombination med EXECUTE AS

Följande exempel illustrerar beteendet när USER det anropas i en imiterad session.

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

Här är resultatet.

DBO
Mario
DBO

Se även

ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
Säkerhetsfunktioner (Transact-SQL)
SESSION_USER (Transact-SQL)
SYSTEM_USER (Transact-SQL)
USER_NAME (Transact-SQL)