ANVÄNDARE (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 ALTER TABLE-satserna, eller använd som vilken standardfunktion som helst.

ANVÄNDAREN returnerar alltid namnet på den aktuella kontexten. När den anropas efter ett EXECUTE AS-uttalande returnerar USER namnet på den imiterade kontexten.

Om en Windows-huvudperson får tillgång till databasen genom medlemskap i en grupp, returnerar ANVÄNDARE namnet på Windows-huvudpersonen istället för gruppens namn.

Examples

A. Att använda USER för att returnera databasens användarnamn

Följande exempel deklarerar en variabel som char, tilldelar det aktuella värdet av USER till den 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. Att använda USER med DEFAULT-begränsningar

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. Att 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)
SKAPA TABELL (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)